๐ง๐ปโโ๏ธ๋ นํด์จ๋ฆฌ ์งํ 2์ธต ๋ถ๋ฒ์ ํ์ผํฐ

๋ นํด์จ๋ฆฌ ์งํ 2์ธต ๋ถ๋ฒ์ ํ์ผํฐ: 200ok
ํด๋ฆฌํฌํฐ ๋จธ๊ธ์ธ ์ฌ์ฉ์๊ฐ ํธ๊ทธ์ํธ์ ๋ถ๋ฒ์
ํํ๋ค๋ ์ปจ์
์ ์น์ฌ์ดํธ
๋ฅํ์ดํฌ์ ์คํ์ผ ํธ๋์คํผ ์ด์ฉํด ์ฌ์ง์ ํด๋ฆฌํฌํฐ์ ์ด์ํ์ฒ๋ผ ์์ง์ด๊ฒ ๋ง๋ค์ด ํ์์ฆ์ ๋ฐ๊ธํด์ฃผ๊ณ , ๊ฐ๋จํ ํ
์คํธ๋ฅผ ํตํด ๋์ ๊ธฐ์์ฌ๋ฅผ ๋ฐฐ์ ํด์ฃผ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค.
ํ๋ก์ ํธ์ ๋ํ ๋์ ์ญํ โ โ๋ณด๋ฌ๊ฐ๊ธฐ๐โ

์ฃผ์ ๊ธฐ๋ฅ
- ์ด๋ฏธ์ง๋ฅผ style transfer์ deepfake๋ฅผ ์ด์ฉํด์ ์์ง์ด๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ณํ
- ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ ๋ฉํฐ ํ๋ก์ธ์ฑ์ ์ด์ฉํ์ฌ ์ฒ๋ฆฌ
- ์ฐจํธ๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ํํ
- JWT๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ/์ฌ์ฉ์ ์ธ์ฆ
- ๋ฐฉ๋ช ๋ก ์์ฑ ๋ฐ ์ญ์
- S3๋ฅผ ์ด์ฉํ ํ์ผ ์ฒ๋ฆฌ
- ์ฌ๋ฌ css ์ ๋๋ฉ์ด์ ํจ๊ณผ
ํ๋ก์ ํธ ๊ธฐ๋ก
๐Github - backend
๐Github - frontend
๐Starting Assignment (tistory)
ํ๋ก์ ํธ ๊ธฐ๊ฐ
2022-06-27 ~ 2022-07-04
ํ ๊ตฌ์ฑ ๋ฐ ์ญํ
| ์ด๋ฆ | ์ญํ | ๊นํ๋ธ |
|---|---|---|
| ์ด์ ์ย ย ย ย | ๋ฉ์ธ ํ์ด์ง, ๋ฅ๋ฌ๋ | ๐zeonga1102 |
| ๋ ธ ์ | ๊ธฐ์์ฌ ๋ณ ํ์ด์ง | ๐minkkky |
| ์ดํ๊ฒฝ | ๊ฐ์ธ ํ์ด์ง | ๐LULULALA2 |
| ๊น๋๊ทผ | ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ํ์ด์ง, AWS ๋ฐฐํฌย ย ย ย | ๐yinmsk |
์คํฌ ๋ฐ ์ฌ์ฉํด
Python, Django, DjangoRestFramwork, javascript
ERD

ํ๋ก์ ํธ์ ๋ํ ๋์ ์ญํ ๋ฐ ๊ฒฝํ
๋์ ์ญํ
๋ฐฑ์๋
- ๋ฐฑ์๋ ๋ฐฐํฌ
- AWS(EC2, Cloud9) ์ ์ด์ฉํ์ฌ ๋ฐฑ์๋ ๋ฐฐํฌ
- ๋ง์ดํ์ด์ง - ์ฌ์ฉ์ ์ ๋ณด ํ์
ํ๋ก ํธ์๋
- ํ์ด์ง ์ ์
- ๊ธฐ์์ฌ ๋ฐฐ์ ๊ฒฐ๊ณผ ํ์ด์ง
- ๋ง์ดํ์ด์ง
- ๋ก๊ทธ์ธ ํ์ด์ง
- sns๊ณต์ ๋ฐ ํด๋ฆฝ๋ณด๋ ๋งํฌ ๋ณต์ฌ ๊ธฐ๋ฅ
๐งจ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๊ฐ ์ ์ฉ๋๊ฒ ๋์๋ค.

ํ๊ณ
ํ๋ก์ ํธ ๊ธฐ๊ฐ์ ๋นํด์ ๋ณผ๋ฅจ์ด ์ข ์ปธ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ์๋ก ํ๋ก์ ํธ์ ์ง์คํ๋๋ผ ํ ๋ด ์ํต์ด ์กฐ๊ธ ๋ถ์กฑํ์๋ค.
๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋ฐฐํฌ๋ฅผ ์ฑ๊ณตํ์ง ๋ชปํ ๊ฒ์ด์๋๋ฐ, ๋ง๊ฐ 3์ผ์ ๋ถํฐ ์์ํ๋ฉด ์ถฉ๋ถํ ํ ์ ์์ ๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ ๋ฐฐํฌ๊ฐ ์๊ฐ๋ณด๋ค ์ค๋๊ฑธ๋ฆฌ๊ณ ๊ณ ๋ คํด์ผ๋ ๋ณ์๊ฐ ๋ง์๋ค. ๊ทธ๋์ ๋ค์ ํ๋ก์ ํธ์์๋ ๋ฐฐํฌ๋ฅผ ๋ฏธ๋ฆฌ๋ถํฐ ์ค๋นํ์๋ ์๊ฒฌ์ด ๋์๋ค.
๊ทธ๋๋ ๊ทธ๋์ ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ํด๋ณด์ง ๋ชปํ๋ EC2, S3 ์ฌ์ฉ ๊ฐ์ ๊ฒ๋ ํด๋ณผ ์ ์์ด์ ์ข์๊ณ , ๋ฉํฐํ๋ก์ธ์ฑ์ด๋ผ๋ ์๋ก์ด ๊ธฐ์ ๋ ์ ํ ์ ์์ด์ ๋ง์กฑ์ค๋ฌ์ ๋ค. ์ด๋ฒ์๋ ์ ์ํ ๋ชฉ์ ๊ณผ ๊ธฐํ๋๋ก ์ ์์ฑ์ด ๋์๋๋ฐ, ํนํ ํ๋ก ํธ์ชฝ์ ๋ชฉ์ ๋ณด๋ค ๋ ์๋์์ ๋ฟ๋ฏํ๋ค.