๐Ÿง™๐Ÿปโ€โ™‚๏ธ๋…นํ„ด์•จ๋ฆฌ ์ง€ํ•˜ 2์ธต ๋ถˆ๋ฒ•์ž…ํ•™์„ผํ„ฐ

ad


๋…นํ„ด์•จ๋ฆฌ ์ง€ํ•˜ 2์ธต ๋ถˆ๋ฒ•์ž…ํ•™์„ผํ„ฐ: 200ok

ํ•ด๋ฆฌํฌํ„ฐ ๋จธ๊ธ€์ธ ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธ๊ทธ์™€ํŠธ์— ๋ถˆ๋ฒ•์ž…ํ•™ํ•œ๋‹ค๋Š” ์ปจ์…‰์˜ ์›น์‚ฌ์ดํŠธ
๋”ฅํŽ˜์ดํฌ์™€ ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ ์ด์šฉํ•ด ์‚ฌ์ง„์„ ํ•ด๋ฆฌํฌํ„ฐ์˜ ์ดˆ์ƒํ™”์ฒ˜๋Ÿผ ์›€์ง์ด๊ฒŒ ๋งŒ๋“ค์–ด ํ•™์ƒ์ฆ์„ ๋ฐœ๊ธ‰ํ•ด์ฃผ๊ณ , ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋‚˜์˜ ๊ธฐ์ˆ™์‚ฌ๋ฅผ ๋ฐฐ์ •ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.


ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‚˜์˜ ์—ญํ•  โ†’ โ€œ๋ณด๋Ÿฌ๊ฐ€๊ธฐ๐Ÿ‘€โ€


๐Ÿ”—์‹œ์—ฐ์˜์ƒ


1 2 3 4 5


์ฃผ์š” ๊ธฐ๋Šฅ


ํ”„๋กœ์ ํŠธ ๊ธฐ๋ก

๐Ÿ”—Github - backend
๐Ÿ”—Github - frontend
๐Ÿ”—Starting Assignment (tistory)


ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

2022-06-27 ~ 2022-07-04


ํŒ€ ๊ตฌ์„ฑ ๋ฐ ์—ญํ• 

์ด๋ฆ„ ์—ญํ•  ๊นƒํ—ˆ๋ธŒ
์ด์ •์•„ย ย ย ย  ๋ฉ”์ธ ํŽ˜์ด์ง€, ๋”ฅ๋Ÿฌ๋‹ ๐Ÿ”—zeonga1102
๋…ธ ์„ ๊ธฐ์ˆ™์‚ฌ ๋ณ„ ํŽ˜์ด์ง€ ๐Ÿ”—minkkky
์ดํ˜„๊ฒฝ ๊ฐœ์ธ ํŽ˜์ด์ง€ ๐Ÿ”—LULULALA2
๊น€๋™๊ทผ ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€, AWS ๋ฐฐํฌย ย ย ย  ๐Ÿ”—yinmsk


์Šคํ‚ฌ ๋ฐ ์‚ฌ์šฉํˆด

Python, Django, DjangoRestFramwork, javascript


ERD

make migrations (6)



ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‚˜์˜ ์—ญํ•  ๋ฐ ๊ฒฝํ—˜

๋‚˜์˜ ์—ญํ• 

๋ฐฑ์—”๋“œ

ํ”„๋ก ํŠธ์—”๋“œ


๐ŸงจTroubleShooting

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฐ์ •๋ฐ›์€ ๊ธฐ์ˆ™์‚ฌ์— ๋”ฐ๋ผ CSS๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ

๊ธฐ์ˆ™์‚ฌ๋Š” 4๊ฐœ์ธ๋ฐ ๋งŒ๋“ค์–ด์ ธ์žˆ๋Š” ํ…œํ”Œ๋ฆฟ์€ ํ•œ๊ฐœ์—ฌ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฐ์ •๋ฐ›์€ ๊ธฐ์ˆ™์‚ฌ์— ๋”ฐ๋ผ CSS๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฏธ๋ฆฌ ๊ฐ ๊ธฐ์ˆ™์‚ฌ์— ๋งž๋Š” ์•ŒํŒŒ๋ฒณ์„ ๋ถ™์—ฌ์„œ CSS class๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋ฐ›์•„์˜ค๋Š” ๊ธฐ์ˆ™์‚ฌ์ •๋ณด์— ๋”ฐ๋ผ์„œ ์ ์šฉํ•˜๋Š” class์˜ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๋„๋ก ํ–ˆ๋‹ค.

// get data - sorting dormitory
async function change_mydormitory() {

    const response = await fetch(`${backend_base_url}/dorm/sorting/`, {
        method: 'GET',
        headers : { Authorization : "Bearer " + localStorage.getItem("access")},
        withCredentials: true,
    })
    .then(response => response.json())
    .then(data => {      
        dormitory = ["gd", "hf", "sth", "rc"]
        let room_id = data.dormitory_id - 1
        
        // dorm element
        document.getElementById("mybg").classList.toggle(`${dormitory[room_id]}-bg`)
        document.getElementById("mydorm1").innerText = `${data.dormitory}`
		// .. ์ƒ๋žต ..

        // student id card
        admission = getYmd10(data.join_date)
        student_id = admission.slice(2, 4) + String(data.dormitory_id).padStart(2,'0') + String(data.id).padStart(4,'0')

		//.. ์ƒ๋žต ..
        document.getElementById("admission").innerText= `${admission}`
        // document.querySelector(".portrait").attr('style', 'background-image: url("' + image_url +'")')
    })
}

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐฐ์ •๋œ ๊ธฐ์ˆ™์‚ฌ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ CSS๊ฐ€ ์ ์šฉ๋˜๊ฒŒ ๋˜์—ˆ๋‹ค.

result


ํšŒ๊ณ 

ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„์— ๋น„ํ•ด์„œ ๋ณผ๋ฅจ์ด ์ข€ ์ปธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ž˜์„œ ์„œ๋กœ ํ”„๋กœ์ ํŠธ์— ์ง‘์ค‘ํ•˜๋А๋ผ ํŒ€ ๋‚ด ์†Œํ†ต์ด ์กฐ๊ธˆ ๋ถ€์กฑํ–ˆ์—ˆ๋‹ค.
๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ๋ฐฐํฌ๋ฅผ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด์—ˆ๋Š”๋ฐ, ๋งˆ๊ฐ 3์ผ์ „๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉด ์ถฉ๋ถ„ํžˆ ํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ฐฐํฌ๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ  ๊ณ ๋ คํ•ด์•ผ๋  ๋ณ€์ˆ˜๊ฐ€ ๋งŽ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฐฐํฌ๋ฅผ ๋ฏธ๋ฆฌ๋ถ€ํ„ฐ ์ค€๋น„ํ•˜์ž๋Š” ์˜๊ฒฌ์ด ๋‚˜์™”๋‹ค.

๊ทธ๋ž˜๋„ ๊ทธ๋™์•ˆ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ EC2, S3 ์‚ฌ์šฉ ๊ฐ™์€ ๊ฒƒ๋„ ํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๊ณ , ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ๋„ ์ ‘ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งŒ์กฑ์Šค๋Ÿฌ์› ๋‹ค. ์ด๋ฒˆ์—๋„ ์ œ์ž‘ํ•œ ๋ชฉ์—…๊ณผ ๊ธฐํš๋Œ€๋กœ ์ž˜ ์™„์„ฑ์ด ๋˜์—ˆ๋Š”๋ฐ, ํŠนํžˆ ํ”„๋ก ํŠธ์ชฝ์€ ๋ชฉ์—…๋ณด๋‹ค ๋” ์ž˜๋‚˜์™€์„œ ๋ฟŒ๋“ฏํ–ˆ๋‹ค.