์ํ ์ถ์ฒ์ ์ํด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ(Basic) ์๋น์ค ๊ตฌํ์ ์ด์ ์ ๋์๋ค.
๋ก๊ณ ์ ํ๋ช ์ ๊ณ ์ ๋ช ์ Back To The Future์์ ์๊ฐ์ ์ป์๋ค.
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๋น์ค๋ก์ "์ํ ๊ฒ์"๊ณผ "์ปค๋ฎค๋ํฐ" ๊ทธ๋ฆฌ๊ณ "์ ์ ์ ์ฑํฅ์ ๋ฐ๋ฅธ ์ํ ์ถ์ฒ"์ ์ ์ ํ๋ค.
๊ทผ๋ณธ์ ์ธ ๋ชฉํ
=> ๊ฐ ํ์ด์ง์์ ํ์ํ ์ ๋ณด๋ค๋ง ์๋ฒ๋ก ์์ฒญํ์ฌ ์๋ต ๋ฐ์ ํต์ ๋น์ฉ ์ ๊ฐ ํจ๊ณผ
โ +
โ
- 22.05.20 ~ 22.05.27
์ด๋ฆ | ์ ๋ฌด | ํ๋ ์์ํฌ |
---|---|---|
๊น์ฒ ํ | ํ๋ก ํธ์๋ ์ด๊ด / ๋์์ธ ์ด๊ด | Vue.js, Html, CSS, SCSS, Git |
ํ์ธํ | ๋ฐฑ์๋ ์ด๊ด / ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ / ํ๋ก ํธ์๋ ๋ณด์กฐ | Django, Python, Vue.js, Git |
-
์ต์ด ํ์๊ฐ์ ์ 7๊ฐ ์ฌ์ง๋ค์ ๋ํ ์ด๋ฏธ์ง ๋ฐ์์ผ๋ก ์ ์ ์ ์ฑ๊ฒฉ ์ธ๋ถํ(์ด 3๊ฐ์ง)
-
๋๋ง์ ์ถ์ฒ์ํ(์ ์ฑ๊ฒฉ ๊ธฐ์ค ์ฅ๋ฅด ์ถ์ฒ), ์ ์ฒด ์ํ, ๋ฐฐ์ฐ๋ณ, ๊ฐ๋ ๋ณ, ์ฅ๋ฅด๋ณ, ์ํ ์ ๋ชฉ๋ณ ์กฐํ ๊ธฐ๋ฅ(TMDB API ๊ธฐ๋ฐ)
-
์ํ ์์ธ ์ ๋ณด ์กฐํ (์ค๊ฑฐ๋ฆฌ, ํธ๋ ์ผ๋ฌ, TMDB ํ์ , ์ ์์ง[๊ฐ๋ , ๋ฐฐ์ฐ] ๋ฑ)
-
๊ฐ ์ํ๋ณ ์ ์ ๋ฆฌ๋ทฐ ๊ฐ๋ฅ, ์ํ ์์ธ ์ ๋ณด๋์์ ์ ์ ์ ๋ฐ๋ฅธ ์ํ ํ์ ์กฐํ ๊ฐ๋ฅ, ์ํ ์ข์์ ๊ธฐ๋ฅ
-
์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ, ์ ์ฒด ์ ์ ๋ฅผ ์ํ ๊ฒ์ํ๊ณผ ๊ฐ์ ์ฑ๊ฒฉ์ ๊ฐ์ง ์ ์ ๋ค๋ง์ ์ํ ๊ฒ์ํ ์กด์ฌ
-
์ ์ ๋ณ ํ๋กํ์์ ํด๋น ์ ์ ๊ฐ ์ข์์ํ ์ํ, ๊ฒ์๊ธ ๋ฐ ๋๊ธ, ์์ฑํ ๋ฆฌ๋ทฐ ๋ฐ ๊ฒ์๊ธ ์กฐํ ๊ฐ๋ฅ, ํด๋น ํญ๋ชฉ ํด๋ฆญ์ router๋ก ์ด๋
[์ด๊ธฐ ๋ฒ์ ]
[์ต์ข ๋ฒ์ ]
erdcloud์์ ์์ ์งํ
์ฒญ๋ก์ ํญ๋ชฉ์ Many To Many ๊ด๊ณ๋ฅผ ์๋ฏธํ๋ค.
์ด๊ธฐ ๋ฒ์ ์ ๋นํด ๊ฐ ๋ชจ๋ธ๋ณ๋ก ํ์ํ ํญ๋ชฉ๋ค์ ์ข ๋ ๋ณด์ถฉํ์๋ค.
appdiagrams์์ ์์ ์งํ
-
Python requests ํ์ฉ TMDB API DATA ์์ง
-
์ด 19๊ฐ์ ์ฅ๋ฅด ๋ฐ์ดํฐ์ ์ฑ๊ฒฉ ์ ํ ๋ณ ์ซ์ ๋ฐฐ์ (์ฑ๊ฒฉ ์ ํ์ ์ด 3๊ฐ์ง๋ก ์ ์, ์ถํ ์ฑ๊ฒฉ ๋ณ ์ซ์๋ ์ ์ ๋ณ ์นญํธ๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์)
-
200๊ฐ์ ์ํ ๋ฐ์ดํฐ ์กฐํ ํ
- ๊ฐ๋ด์ผ์
- ์ฅ๋ฅด
- ๋น๋์ค ํค
์ ์ธ ๊ฐ์ง ๊ฐ์ด ์กด์ฌํ๋ ์ํ ๋ฐ์ดํฐ ์ ๋ณ
-
์ ๋ณ๋ ์ํ ๋ฐ์ดํฐ ์ค ๋ฐฐ์ฐ ๋ฐ์ดํฐ์ ๊ฐ๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ๋ฐ์ดํฐ json ํํ๋ก ์ ์ฅ ํ Django์์ loaddata ์งํ
- ํ๋ฆ์ด ๋์๊ฐ๋ ๋์์๊ณผ bgm ์ฌ์
- ์ผ์ ์๊ฐ ๊ฒฝ๊ณผ ํ start ๋ฒํผ์ด ๋ฐ์งํ๋ฉฐ ์์ฑ๋จ
- ์ ๋ ฅ ์ค๋ฅ ์ ์๋ฌ ๋ฉ์ธ์ง ์ฝ์
-
์ฌ์ง์ ๋ณด๊ณ ๋ฒํผ ํด๋ฆญ ์ ํด๋น ์ ์์ ๋ง๊ฒ ์ด ์ ์ ๊ฐฑ์
-
๊ฒฐ๊ณผ ํ์ด์ง์ ์ ์ ์ ์ ์์ ๋ง๋ ์นญํธ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , axios ํต์ ์ผ๋ก db์ ํด๋น ๊ฐ ์ ์ฅ(user.nickname)
-
๋ค๋น๊ฒ์ด์ ๊ฐ๋๋ก ์ฌ์ ๊ทผ ๋ถ๊ฐ๋ฅํ๊ฒ๋ ์ค๊ณ
ํฌ์คํฐ hover => ๋๋ณด๊ธฐ ์์ด์ฝ ์์ฑ, ์์ด์ฝ ํด๋ฆญ ์ ์ํ ํธ๋ ์ผ๋ฌ ๋ฑ์ ๋ณผ ์ ์๋ mock up ํ์ด์ง
- vue-gliad๋ฅผ ํ์ฉ, ์ผ์ ์๊ฐ๋ง๋ค ์ํ ํฌ์คํฐ ์์ผ๋ก ์ด๋ ๋ฐ ๋ง์ฐ์ค ๋๋๊ทธ๋ก ๋๊ฒจ๋ณผ ์ ์์
- ํฌ์คํฐ ํญ๋ชฉ๋ณ hover - pause
- ํญ๋ชฉ๋ณ hover, ๋ฒํผ ์ ๋๋ฉ์ด์ ์๋
- ๋ฒํผ ํด๋ฆญ ์ ํด๋น ํ์ด์ง๋ก ์ด๋(router ์ด๋)
- ์ ์ ๋ณ ์นญํธ์ ๋ฐ๋ฅธ ์ฅ๋ฅด ๋ณ ์ํ ์ถ์ฒ
- ํ์ด์ง ๋ค์ด๊ฐ ์ ์ ์ฒด ์ํ ๋ฐ์ดํฐ ํธ์ถ
- ์ฐพ๊ณ ์ ํ๋ ์ ๋ชฉ ์ ๋ ฅ ์ ํด๋น ์ ๋ชฉ์ ํฌํจํ๋ ์ํ ๊ฐ์ ธ์ค๊ธฐ
- ํ์ด์ง ๋ค์ด๊ฐ ์ ์ ์ฒด ๋ฐฐ์ฐ์ ๊ทธ ๋ฐฐ์ฐ์ ์ถ์ฐ์ ํธ์ถ
- ๋ฐฐ์ฐ ์ด๋ฆ ์ ๋ ฅ ์ ํด๋น ๋จ์ด๋ฅผ ํฌํจํ๋ ๋ฐฐ์ฐ์ ๊ทธ์ ์ถ์ฐ์ ๊ฐ์ ธ์ค๊ธฐ
- ๋ฐฐ์ฐ์ ๋์ผ, ๋ฐฐ์ฐ => ๊ฐ๋ ์ผ๋ก์ ๋ณํ
- ์๋จ์ ๊ฐ ์ฅ๋ฅด๋ณ ๋ฒํผ ์กด์ฌ, ํ์ด์ง ๋ค์ด๊ฐ ์ ๊ฐ ์ฅ๋ฅด์ ๋ํ ๋ชจ๋ ์ํ ํธ์ถ
- ํน์ ๋ฒํผ ํด๋ฆญ ์ ํด๋นํ๋ ์ฅ๋ฅด์ ๋ง๋ ์ํ ๊ฐ์ ธ์ค๊ธฐ
-
์ํ ์ ๋ชฉ, ์ค๊ฑฐ๋ฆฌ, TMDB ํ์ , ์ ์ ํ์ , ๊ฐ๋ด์ผ, ์ข์์, ์ฅ๋ฅด, ์ถ์ฐ ๋ฐฐ์ฐ ๋ฐ ๊ฐ๋ ์ ๋ณด ํ์ฌ
-
ํ๋จ์ ๋ฆฌ๋ทฐ(ํ์ ๊ณผ ์ฝ๋ฉํธ) ๋จ๊ธฐ๊ธฐ ๊ฐ๋ฅ, ํ ์์ด๋ ๋น ํ ์ํ์ ์ต๋ ํ ๋ฒ๋ง ๋ฆฌ๋ทฐ ๊ฐ๋ฅ
์์ฑ์ ํด๋ฆญ ์ ์ ์ ์ ํ๋กํ๋ก, ์ ๋ชฉ ํด๋ฆญ ์ ํด๋น ๊ธ์ detail ํ์ด์ง๋ก ์ด๋
- ์นญํธ ๊ตฌ๋ถ ์์ด ๋ชจ๋ ์ ์ ๊ฐ ๊ณต์ ํ๋ ๊ฒ์ํ, ๋ชจ๋ ์ ์ ๊ฐ CRUD ๊ฐ๋ฅ
-
๊ฐ ์ ์ ๋ณ ์นญํธ์ ๋ง๋ ๊ฒ์ํ์ผ๋ก ์ด๋ํ ์ ์๊ฒ๋ ์ค๊ณ
-
๊ฐ์ ์นญํธ์ ์ ์ ๊ฐ ์์ฑํ ๊ธ ์ด๋ ๊ฐ๋ฅ(์ ์ฒด ๊ฒ์ํ์์๋ ์ด๋ํ ์ ์๋ ๊ธ๋ค์)
์ ์ ์ ์ข์์ํ ์ํ / ๋ฆฌ๋ทฐํ ์ํ / ์์ฑํ ๊ฒ์๊ธ / ์ข์์ํ ๊ฒ์๊ธ / ์์ฑํ ๋๊ธ์ ๋ณผ ์ ์์
์ข์์ํ ์ํ๋ ํฌ์คํฐ, ๋๋จธ์ง๋ ๊ฒ์ํ์ ์ ์ฉํ ๊ฒ๊ณผ ๊ฐ์ Table๋ก ํ๋ฉด์ ์ก์ถ
django์ createsuper ์ ์ ๋ก ์์ด๋ ์์ฑ ํ ์ ์ ์ NavBar์ ๊ด๋ฆฌ์ ํ์ด์ง(Django admin page ์ฌ์ฉ)๋ก ์ด๋ ๊ฐ๋ฅ
[1] ์ด๊ธฐ ERD ๊ตฌ์ฑ์ ์ด๋ ค์
๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ฅ๋ถํฐ ์์ฑํ๋ ์์ ์ด๋ผ ์๊ฐ ์์๊ฐ ๊ฝค ์ปธ๋ค.
=> ์ฌ๋ฌ ์๋ฌ๋ฅผ ๋ง์ดํ๋ฉฐ ์ค๊ฐ ์ค๊ฐ ๊ณ์ ์ํฉ์ ๋ง๊ฒ ์์ ํ์๋ค.
[2] Django REST Framework ์ Vue.js Axios ํต์ ์ ๋ํ ์ดํด
๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ณ ์์ ์ง์๋ง ๊ฐ์ง ์ํฉ์์ ๋ ์ธ์ด๋ฅผ ์ฐ๊ฒฐ์ํค๋ ๊ณผ์ ์์ฒด๊ฐ ๋ชน์ ๋์ด๋๊ฐ ๋์๋ค.
=> TMDB API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ฉฐ json ๋ฐ์ดํฐ์ ๋ํ ์ดํด๋ฅผ ์ฆ์ง์์ผฐ๊ณ ,
vue.js์ axios ํต์ ์ด django์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ธ๋ค๋ ๊ฒ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ ๊นจ๋ฌ์ผ๋ฉด์ ์ ์ฒด ๊ตฌ์กฐ์ ๋ํ ์ดํด๊ฐ ๋์๋ค.
[3] Serializer์ fields๊ฐ ์ค์
์ ํํ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ง ์์ํ์ง ๋ชปํ๊ณ , Serializer์ fields ๊ฐ์ ์ต์ํ ํ์๋ค.
Axios ์์ ๋์ค ๋ถ๋ช Django model์ ์ ์ธํ ๊ฐ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ ์ํฉ์ด ๋์ด์์ผ
๊ธฐ์ด Serializer๋ฅผ ์๋ชป ์ค์ ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.
=> ์ฐ์ ๋ชจ๋ Serializer์ fields ๊ฐ์ all๋ก ๊ฐฑ์ ํ์๋ค. ์ด ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์ง๋ง, ์๋ฒ์ ์๋๊ฐ ๋์ ๋๊ฒ ๋๋ ค์ง์ ํ์ธํ ์ ์์๋ค. ํด๋น ๋ถ๋ถ์ ํ๋ก์ ํธ๊ฐ ์ข ๋ฃํ ์ดํ์๋ ์ฌ๊ฒํ ํ์ฌ ์ต์ ํ๋ฅผ ์์ผ์ผ ํ ๊ฒ ๊ฐ๋ค.
ํ์ธํ :
์ฒ ํ๋๊ณผ ํจ๊ป ํ ์ ์์ด์ ์๊ด์ด์๋ค. ๋ด๊ฐ ๊ณ์ ์ค๊ฐ ์ค๊ฐ๋ง๋ค ๋ฌ๊ธ์๋ ์์ด๋์ด๋ฅผ ์ ์ํ๊ณ , ๊ฐ๋์ ํด๋น ์์ด๋์ด๊ฐ ํ๋ก์ ํธ์ ํฐ ํ๊ณผ ๋ง์ง ์์์๋ ๊ฒฝ์ฒญํด์ฃผ์ ์ ๊ฐ์ฌํ๋ค. ๋ํ, ๋น๋ก ์ค๋ฅ๊ฐ ํญ๋ฐํ๋ ์ํฉ์ด ๋ง์์ง๋ง, ๊ทธ ๋ ๋ง๋ค ์นจ์ฐฉํ ์ํฉ์ ๊ทน๋ณตํ๋ ค ์ ์ฐ์๋ ๋ชจ์ต์ ๊ฐ๋ํ๋ค.
7์ผ ๋์ ํ๋ฃจ ํ๊ท 12์๊ฐ ์ด์์ ์๊ฐ์ ์ฝ๋ฉ์ ์ฌ์ฉํ๋ค. ๋น๋ก ๊ฑด๊ฐ์ด ๋ง์ด ์ํ๋ ๋๋์ด ๋ค์ง๋ง, ์ค๋ฅ ํญํ์์ ๋ฒ์ด๋ ๋ ๋ง๋ค ์ด๋ฃจ ๋งํ ์ ์๋ ์พ๊ฐ์ด ์ค๊ฐ์ ๊ดํตํ๋ค. ์ด๋์ ๊ดํต ํ๋ก์ ํธ ์ธ ๊ฒ ๊ฐ๋ค.
์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๊ฐ ๊ตฌ๊ธ๋ง์ ํ๊ณ , console ์ฐฝ๊ณผ visual studio์ ํฐ๋ฏธ๋์ ๋ณด๋ฉฐ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๊น์ ๋ํด ์๊ฐํ๋ ๊ณผ์ ์ด ์ฌ๋ฐ์๋ค. ํด๋น ๊ณผ์ ์ด ์ถํ ๋น์ทํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ๋ช ๋ถ๋ ์ฑ ๋์ง ์์์ ์์์ฐจ๋ฆด ์ ์๊ฒ ๋์๊ณ , ์ค์ค๋ก๊ฐ ์ฑ์ฅ ํ๊ณ ์์์ ๋๋ผ๋ ํฐ ๊ณ๊ธฐ์ด์ ์์ ๊ฐ์ ๊ฐ๊ฒ๋๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค.
์๊ฐ์ด ๋ถ์กฑํ์ฌ ๋ก๋ฉ ์ค์ ํํํ ์ ์๋ ๋ก๋ฉ ์คํผ๋๋ฅผ ์ถ๊ฐํ์ง ๋ชปํ ์ ์ด ์์ฝ๋ค. ์ด๋ฐ ๋ถ๋ถ์ ๋ณด์ํ์ฌ ์ผํ์ฑ ํ๋ก์ ํธ๋ก ๋๋ด๋ ๊ฒ์ด ์๋, ๋ชจ๋ ์๋ฌ๊ฐ ์ ๋ณต๋ ์์ ํ ํ๋ก์ ํธ๋ก ๋ง๋ค๊ณ ์ถ๋ค.
๊น์ฒ ํ :
๊น์ฒ ํ : ์ ๋ง ํ๋ 1์ฃผ์ผ์ด์๋คใ ใ css๋ฅผ ์ข ๋ ์ด์ฌํ ๊ณต๋ถํด ๋์๋๋ผ๋ฉด ์๊ฐ์ ๋ง์ด ์ ์ฝํ ์ ์์์ ํ ๋ฐ ์ํ์ฐฉ์ค๋ฅผ ๋ง์ด ๊ฒช๋ค๋ณด๋ ์๊ฐ์ด ์์ฒญ ์ค๋ ๊ฑธ๋ ธ๋ค. ๊พธ๋ฏธ๋ ๊ฒ์ ์์ด ์์ฌ์ด ๊ณ์ ๋์ ๋ ๋์ ์ฝ๋๋ค์ ์ดํด๋ณด๋ค๊ฐ ์๊ฐ์ ๋ง์ด ํ๋นํ๊ณ (ํ๋ฃจ๋ three.js๋ง ์ณ๋ค๋ณธ ์ ๋ ์์๋ค..๊ฒฐ๊ตญ ๋ชป์จ๋จน์์ง๋ง) ๋ํ ๊ทธ ์ฝ๋๋ฅผ ์ ์ฉํจ์ ์์ด์ ์ด๋ ค์๋ ๋ง์๋ค. ํ๋ก์ ํธ ์์ ์ ์ vue์ ๋ํ ๋๋ ค์์ด ์ปธ๋๋ฐ vuex๋ ์๊ฐ๋ณด๋ค ์์ํ๊ณ css, scss ํ์ฉ์ด ๋ง์ด ํ๋ค์๋ค ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๋ฏธ์ ๊ฐ๊ฐ์ด ์๋ค๋ ๊ฒ์ ๋ค์ ํ๋ฒ ๊นจ๋ฌ์๋ค.
๋จผ์ ๊ฐ์ด ํ์๊ณ ์๊ธฐํด์ฃผ์ ์ธํ๋๊ป ๋๋ฌด ๋๋ฌด ๊ฐ์ฌํ๋ค. ๋ฌด๊ณํ์ ๋ฒผ๋ฝ์น๊ธฐ๋ฅผ ์ข์ํ๋ ๋๋ฅผ ์ ์ด๋์ด์ฃผ์ จ๋ค. ์ด๋ฐ์ ์ธํ๋์ด ์๋์๋ค๋ฉด ์ ๋ง ์์ฐ ๊ทธ๋๋ก์ ์ํ์ถ์ฒ์ฌ์ดํธ๊ฐ ํ์ํ์ ๊ฒ์ด๋ค. ๋ด๊ฐ ๊ธฐํํ ๋์์ธ๋ ์ง์ฌ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง? ์ ๋ง ์ข์ํด์ฃผ์ ์ ๊ฐ์ฌํ๋ค:star: ๋๋ฌด ์๊ณ ๋ง์ผ์ จ์ต๋๋ค!!!:star2: