๐ ํฌ์คํ ๋ด์ฉ : Github ์ฃผ์ | ๊ฒฐ๊ณผ๋ฌผ ์์ | ํํฐ๋๋ค ํผ๋๋ฐฑ | KPT | ๊ฒฐ๊ณผ๋ฌผ ์บก์ณ | ๊ณต๋ถํด์ผํ ๊ฒ | ํ ํ๋ก์ ํธ ํ๊ณ
๐จ๐ป๐จ Github
https://github.com/2JYK/The-season-of-N.11_backend
https://github.com/2JYK/The-season-of-N.11_frontend
๐ผ ํํฐ๋๋ค ํผ๋๋ฐฑ
- ์ด์๋ก ํํฐ
- ๋ฐฐํฌ๊น์ง ๊น๋ํ๊ฒ ๊ตฌํํด๋ณด๊ณ ์ธ์ฆ์ด ์๋์์๋๋ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํ๋ ๋ก์ง๊ณผ style์ ๋ ฅํด์ ๊ทธ์ ํด๋นํ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณํํ๋๋ก ๋ก์ง์ ์ ๊ตฌํํด์ฃผ์ จ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฉํ ์คํ์ผ ์ฌ์ง์ ์ ํํ๊ฒ ํด์ ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ์์์๋์ ์ด ์ข์์ต๋๋ค. nested serializer์ SerializerMethodFieldํด๋์ค ์ ์ดํดํ๊ณ ๊ตฌํํ์ ์ ์ํ๋ Response ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ๋๋ก ์ ๋ฝ์์ฃผ์ จ์ต๋๋ค. is_anonymous์ ๊ฐ์ ์์ฑ๋ ์ ๊ทน์ ์ผ๋ก ํ์ฉํด๋ณด์๊ณ ํจ์จ์ ์ผ๋ก ์ฝ๋์์ฑํ๊ธฐ์ํด์ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ด๋ค ๋ฌธ์ ์ ์ ๋ํด์ ์๋ก ํ ๋ก ํด๋ณด๊ณ ํด๊ฒฐํด๋๊ฐ๋ ์ ์ด ์ข์์ต๋๋ค. ์ํฌํธ ํ๋ ๋ถ๋ถ๊ณผ ์ ์ฒด์ ์ธ ์ฝ๋ ๋ ์ด์์์๋ ์ ๊ฒฝ์ ๋ง์ด ์ด ๋ ธ๋ ฅ์ด ๋ณด์ ๋๋ค. ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ print๋ฌธ๋ ์ ๋ถ ์ญ์ ์ ํ์ จ์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธํ๋ฉด์ ํ ํ๋ฆฟ ๋ฌธ์์ด๋ก ๋๊ธ ๋ชจ๋ฌ ์ฐฝ ๊ตฌํํ๊ธฐ ํ๋์ จ์ ํ ๋ฐ ๋๊น์ง ์ ๊ตฌํํด์ฃผ์ จ๊ณ ์๊ณ ๋ง์ผ์ จ์ต๋๋ค. pylint๋ ์ ์ ๋ถ์๋๊ตฌ๋ก ์ฐ์ง์๋ importํ๋ ๋ถ๋ถ๋ง ์ ๋ฆฌํด์ฃผ์๋ฉด ๋ ์ข์๊ฒ ๊ฐ์ต๋๋ค.
- ์ด์ํธ ํํฐ
- ์คํ์ผ์ ์ ํ์ ๋์ ์ inference ์๋๋ ํ๋ฆฌํฐ ์ธก๋ฉด์์ ์กฐ๊ธ ๋ ์์ฑ๋ ์๋ ์์ํ์ด ๋์ฌ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๊ฐ ์๋ ค๋๋ฆฐ ๋ชจ๋ธ ์ธ์ ์๋ก์ด ๋ชจ๋ธ ์ฐพ์๋ณด์๋ฉด์ ์๋น์ค์ ์ ํฉํ ๋ชจ๋ธ ์ฐพ์๋ณด์ ๋ถ๋ถ ์ํ์ ๊ฒ ๊ฐ๊ณ , ์คํ์ผ์ด ์ ์ ํ์ง ๊ฒ๋ ๋ชจ๋ธ์ ๋ํด ์ฌ๋ฌ๊ฐ์ง๋ก ํ ์คํธํด ๋ณด์๋ฉด์ ์ ๊ฒฝ์ ๋ง์ด ์จ์ฃผ์ ๊ฒ ๊ฐ์ต๋๋ค.
- ์๋ดํ ํํฐ
- ๋ฐฐํฌ ๋ง๋ฌด๋ฆฌํ์ ์ ๊ณ ์ ๋ง์ผ์
จ์ต๋๋ค!
๋์์์ผ๋ก๋ง ๋ด์ ๊ทธ๋ ๊ธด ํ๋ฐ ํ์๊ฐ์ ์ด ์ ๋์๋ค๋ฉด ์ ๋์๋ค๋ alert๋ ๋์์ฃผ๊ณ
๋ก๊ทธ์ธ์ผ๋ก ์ด๋ํ๊ฒ ๋๋ค๋ฉด ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
View ๊ฐ ํด๋์ค ๋ด ํจ์๋ง๋ค ํด๋น ๋ด์ฉ์ด ์ด๋ค ๊ฒ์ธ์ง ์ฃผ์์ผ๋ก ์ ์์ฑํด์ฃผ์ด ๋ณด๊ธฐ
ํธํ์๊ณ , ํผ๋ฏธ์ , ์ธ์ฆํด๋์ค ์ ์ฌ์ฉํ์ ์ ์ข์์ต๋๋ค.
Article, Comment ํ ์ด๋ธ ๋ด ์์ ์ผ์ ์ปฌ๋ผ๋ช ์คํ์์ต๋๋ค.
์ ์ฒด์ ์ผ๋ก Serializer ์ฌ์ฉ์ด๋ผ๋๊ฐ ์ฝ๋์ ๊ฐ๊ฒฐ์ฑ ๋ฑ์ ์ข ํฉํ์ฌ ๋ณด๊ธฐ ํธํ ์ฝ๋๊ฐ
๋ง์์ ์ข์์ต๋๋ค. ์์ธ๋ฌ ๋ชจ๋ฌ์ฐฝ ์ด๊ณ ๋ซ๋๋ฐ ์์ด ์ ๋ฐ์ ์ผ๋ก ๋ชจ๋ฌ ๊ตฌํ์ ๋ํด
๊ณ ์ํ์ ๋ถ๋ถ ์ธ์งํ๊ณ ์๋๋ฐ ๋ง๋ฌด๋ฆฌ ์ํ์ จ์ต๋๋ค!!
- ๋ฐฐํฌ ๋ง๋ฌด๋ฆฌํ์ ์ ๊ณ ์ ๋ง์ผ์
จ์ต๋๋ค!
- ์ด์ฐฝํธ ํํฐ
- README์ ERD, API ๋ช
์ธ์ ๋ฑ ํ๋ก์ ํธ์ ํ๋ฆ์ ์ง๊ด์ ์ผ๋ก ํ์
ํ ์ ์๊ฒ ๊ตฌ์ฑํด์ฃผ์ ๊ฒ์ ๋๋ฌด ์ข์ต๋๋ค!
์ ๋ฐ์ ์ผ๋ก serializer๋ CBV๋ฅผ ํ์ฉํด์ ํ์ํ ๊ธฐ๋ฅ๋ค์ ๊น๋ํ๊ฒ ๊ตฌํ ํด์ฃผ์ ๊ฒ ๊ฐ์ต๋๋ค!
๋ค์๋ฒ ๋ฐฐํฌ ๋๋ loaddata์ dumpdata๋ฅผ ํ์ฉํด์ Mysql์ ์ฌ์ฉํด ๋ณด๋ ๊ฒ๋ ๊ถ์ฅ๋๋ ค์!
์ง๊ธ๊น์ง ํ๋ก์ ํธ ๊ตฌํํ์๋๋ผ ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค!
- README์ ERD, API ๋ช
์ธ์ ๋ฑ ํ๋ก์ ํธ์ ํ๋ฆ์ ์ง๊ด์ ์ผ๋ก ํ์
ํ ์ ์๊ฒ ๊ตฌ์ฑํด์ฃผ์ ๊ฒ์ ๋๋ฌด ์ข์ต๋๋ค!
๐ผ Keep
- ๊ธฐํ
- ๊ธฐ๋ฅ๋ช ์ธ์ + ํผ๊ทธ๋ง + ERD + ์ปจ๋ฒค์ ๋ฑ
- ๊ธฐํ์ ๋ง์ถฐ ๊ตฌํํ ํ ๋ณด์์ ๋ฐ ์ถ๊ฐ์ ์ ์ฐพ์ ๋ฐ์ํ๋ ๋ถ๋ถ
- ๊ธฐ๋ณธ ๊ตฌํ ์์ฑ ํ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ
- ํ์ํ ์ต์ ๊ธฐ๋ฅ์ ๋ชฉํ์น๋ก ์ก์์ ๊ตฌํ
- ๊ตฌํ๋ ๋ถ๋ถ์ ๋ํ ๋ฆฌํฉํ ๋ง ์งํ
- API ๋ฐ DB ์ค๊ณ์ ๋ํ ๋ก์ง
- ๊ธฐํ์ ์ต๋ํ ๋ง์ถ๋ฉฐ ๋์ค์ ๋ฐ๋๋ ์ํฉ์ด ์ค๋๋ผ๋ ์ ์ฐํ๊ฒ ๋์ฒ
- RESTful ์ ์ํ ์ฑ์ฅ
- backend, frontend ๋ถ๋ฆฌ
- serializer ํ์ฉ
- ๋ฐฐํฌ
- Gunicorn
- AWS - EC2, S3, Cloud9 IDE
- ๋ฐ์ํ ์น ๋์์ธ ์ ์ฉ
- ํ์ํฌ
- Pair programming ์ด์ฉํ์ฌ 2์ธ 1์กฐ๋ก ๋๋์ด ์งํ
๐ผ Problem
- git issue ํ์ฉ๋ ๋ฎ์
- bug ๋ฐ์ ์ ํด๊ฒฐํ๋๋ issue ์์ฑํ์ง ์๊ณ ๋์ด๊ฐ
- ๋ชจ๋ธ๋ง
- ๋ถ๋งํฌ ๋ฐ ์ข์์ ๋ถ๋ถ์ ๋ฐ๋ก ๋ง๋ค์ง ์์ → user model ์์ ์์ฑํด ์ ์ฐํ serializer ํ์ฉ
- ์ด์์ฒด์ ์ ๋ฐ๋ฅธ datetime์ strftime ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ฐจ์ด
- mac : datetime.now().strftime('%Y-%m-%d%H:%M:%s')
- window : datetime.now().strftime('%Y%m%d%H%M%S')
- ํ๋ก์ ํธ ์งํ์ ๋ํ ์๊ฐ ๋ถ์กฑ์ผ๋ก ์ธํ ์๋ฉด ํฌ๊ธฐ → ์๊ฐ๊ด๋ฆฌ
- Javascript
- Bookmark serializer๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์ฑํด ๋ถ๋ฌ์์ผ ํจ
- User model ์์ ๋ถ๋งํฌ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์์ค Article serializer๋ฅผ ํตํด ํ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์๋๋ก ์์ฑํ ์์
๐ผ Try
- git hub
- Issues ์์ฑ
- ๋ชจ๋ธ๋ง
- ForeignKey ๋ฟ๋ง ์๋๋ผ ManyToMany ํน์ OneToOne Feild๋ฅผ ํ์ฉํด ์ฌ๋ฌ ์ฐธ์กฐ ๊ด๊ณ์ ์ต์ํด์ง๊ธฐ
- ๋ฐ์ดํฐ ๊ฐ๊ณต ๋ฐ ์ ์ก ์ต์ ํ
- ํด๋น ๋ถ๋ถ์ ํ์ํ ๋ฐ์ดํฐ๋ง ์ ์ ํ๊ฒ ๊ตํ ํ์
๐จ๐ป๐จ ๊ฒฐ๊ณผ๋ฌผ
- ๋ก๊ทธ์ธ์ด ๋์ง ์์ ์ฌ์ฉ์๊ฐ ๋ฉ์ธ ํ์ด์ง๋ก ๋ฐ๋ก ์ด๋์, ๋ก๊ทธ์ธํ๋ฉด์ผ๋ก ๋๋ ค์ค๋๋ค.
- ํ์๊ฐ์ /๋ก๊ทธ์ธ ์กฐ๊ฑด ๋ฏธ์ถฉ์กฑ์ ๊ฒฝ๊ณ ๋ฅผ ํด์ค๋๋ค.
- simplejwt ์ฌ์ฉํ์์ต๋๋ค.
- ์คํ์ผ์ ์ด 11๊ฐ๋ก ๊ตฌ์ฑํ์์ต๋๋ค. ๊ฐ๋ก ์คํฌ๋กค์ ์ด์ฉํด ํ์ธํ ์ ์์ต๋๋ค.
- ๋ง์ดํ์ด์ง๋ ๋ด๊ฐ ์์ฑํ ๊ฒ์๊ธ๋ค์ ๋ชจ์๊ณผ ๋ถ๋งํฌ ๋ชจ์์ผ๋ก ๋๋์ด์ ธ์๊ณ , ๊ธฐ๋ณธ ํ๋ฉด์ ๋ด๊ฐ ์์ฑํ ๊ฒ์๊ธ๋ค์ ๋ชจ์์ ๋๋ค(์ข)
- ์ฌ๊ฐ ์์ฑํ ๊ฒ์๊ธ์์ ์์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ๋ชฉ,๋ด์ฉ์ ์์ -์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ๋๊ธ์ ์์ฑํ๊ณ ์ญ์ ํ ์ ์์ต๋๋ค. (๋จ์ ์์ฑ๊ธ ์ญ์ X)
๐ฉ๐ป๐ป ๊ณต๋ถํด์ผํ ๊ฒ
- ๋ชจ๋ธ๋ง
- ์ด๋ฒ ํ๋ก์ ํธ ์ฝ๋๋ฆฌ๋ทฐ์ ๋ณด์๋ฅผ ํตํ DRF ๊ณต๋ถ
- Django test( ์๋ํ ํ ์คํธ )
- JWT
- Javascript
- ๋ฐฐํฌ
- AWS
๐ญ Feel
- ์ค์ฌ๊ธฐ
์ ์ ์์ฑ๋๊ฐ ๋์์ ธ๊ฐ๋ ๊ฒฐ๊ณผ๋ฌผ๋ค์ ๋ฟ๋ฏํฉ๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ JWT์ NST์ ์ด์ฉํ๋ ํจ์๋ฅผ ๋ง๋๋ ํํธ๋ฅผ ๋ด๋นํ์๋๋ฐ, simplejwt๋ฅผ ์ด์ฉํ๋ url๊ณผ view๋ฅผ ์์ฑํ ํ์์์ด ๋ก๊ทธ์ธ-๋ก๊ทธ์์์ ํ ์ ์๋ค๋๊ฒ ๊ต์ฅํ ๊ฐ๊ฒฐํ๊ณ ์ข์์ต๋๋ค. nst๊ฒฐ๊ณผ๋ฌผ์ ์๋ฒ,DB,๋ธ๋ผ์ฐ์ ์ ๋ฃ๋ ์์ ์ด ์ด๋ ค์ ๊ณ ๋ฐ์ดํฐ ๊ฐ๊ณต์ ๋ํ ์คํธ๋ ์ค๋ ๋ง์ด ๋ฐ์์์ผ๋ ์ ํฌ๊ฐ ํ ์ ์๋ ์ ์์ ๊ตฌํ์ ์์ฑ์์ผฐ์ต๋๋ค. ์ด ๋ถ๋ถ์ด ์ ๋ง ๊ต์ฅํ ๋ฐ์๋ฅผ ์น ์ ๋๋ก ๊ฐ๋์ด์์ต๋๋ค.
์ ์ฉํ๋ ๋ชจ๋ธ๋ง, ๋งค์ง ๋ฉ์๋, ํ๋ ์ต์ , ์ปค์คํ ํจ์์ ๊ฐ์ ๋ถ๋ถ์ ์๋ฒฝํ๋ค๋ผ๊ณ ์ ํ ํ ์ ์๋ ๋ฏ ํ์ฌ ๋ ์ฌ์ฉํด๋ณด๊ณ ๋ ์์ฑํด๋ด์ผํ ๊ฒ ๊ฐ์ต๋๋ค. Django๋ฅผ ์ฌ์ฉํ์ ๋๋ ์ฅ๊ณ ๊ธฐ๋ณธ ํ ํ๋ฆฟ์ ์ด์ฉํ ์ฅ์ ๋ค์ด ์์๊ณ DRF๋ฅผ ์ฌ์ฉํด๋ณด๋ Serializer๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ถ๋ฌ ์ฌ ์ ์๋ ์ฅ์ ์ ๋น๊ตํด ๋ณผ ์ ์์ด ํจ์ด์ฅ๊ณ ์ drf ๊ฐ๊ฐ์ ์ฝ๋๋ก๋ ์์ฑํด๋ณด๊ณ ์ถ์ ์๊ฐ๋ ๋ญ๋๋ค.
Javascript๋ ์ฒ์ ์ฌ์ฉํ์ ๋๋ณด๋ค ๋ ์ด๋ ค์ด ๋๋์ ๋๋ค. ์ด๋ฒ ๊ธฐํ์ front์์ back์ ์์ฒญํ ๊ฒฝ์ฐ๊น์ง ์๊ฐํด ๋ก์ง์ ๊ตฌ์ํ๋ ํธ์ด ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ๋๊ผ์ต๋๋ค.
Pair Programming์ ์ด์ฉํ์ฌ ํ ๋ด์์ 2์ธ 1์กฐ๋ก ์งํํ์๋๋ฐ ๋๋ฌด ํธ๋ฆฌํ๊ณ ๋์์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ํต๋ ๋ ๋ง์ด ํ ์ ์์ด ๊ตฌํ์ ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ๊น์ง ๋ชฉํ๋ก ์ผ์์ผ๋ ๋ชป ํ ๋ช ๊ฐ์ง ๋ถ๋ถ์ ์์ด ์์ฌ์์ด ๋จ์ต๋๋ค.
์ด๋ฒ์ฃผ๋์ ์์ฑํ์ง ์์๋ ์ฝ๋๋ค๊ณผ ๋ฐฐํฌ์ ๋ํ ๊ฒ์ ๊ผญ ๊ณต๋ถํ ๊ณํ์ ๋๋ค. ์ ์ด๋ฒ์ ์ฒ์์ผ๋ก ๋ชจ๋ ํ์ด์ง์ ๋ฐ์ํ์ ์ ์ฉํด๋ณด์์ต๋๋ค. ๊ฐ๋์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒ ํ๋ก์ ํธ๋ ํ์ ์น๊ตฌ๋ค ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ๋ค๋ค ๊ณ ์ ๋ง์์ด์ฉ๐
- ์ ๋๊ทผ
์ด๋ฒ์ ์๋กญ๊ฒ ๋ฐฐ์ ๋ Django Rest Framework์ ๋ํด์ ์ข ๋ ๋ง์ด ์์๊ฐ ์ ์์๋ ํ๋ก์ ํธ์์ต๋๋ค. ํนํ Serializer์ ํ์ฉ๋ฒ์ ๋ํด ๊ฐ์ ์ก์ ์ ์์์ต๋๋ค. ๊ธฐ์กด์ Django์ ORM๋ง ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ง์ ๊ฒ์ ๋ถ๋ฌ์ ์ข ๋ ์์ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ Django์ template ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ง ์๊ณ ํ๋ก ํธ์ ๋ฐฑ์ ๋ถ๋ฆฌํ๋ ๊ฒ๊ณผ ๊ธฐ์กด Django Session์ ํตํด ๋ก๊ทธ์ธ์ ๊ด๋ฆฌํ์ง ์๊ณ JWT๋ฅผ ํ์ฉํด ๋ก๊ทธ์ธ์ ์งํํ๋ ๊ฒ์ ๋ํด ๋ง์ด ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
์ง๊ธ๊น์ง ํ์ง ์์๋ ๋ถ๋งํฌ์ ์ข์์ ๊ธฐ๋ฅ์ ์ด๋ฒ ํ๋ก์ ํธ์์ ๊ตฌํํด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ก์ง์ ์ง๋์ง ๊ฐ์ด ์กํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ์์๋ ๋ถ๋งํฌ์ ์ข์์๋ฅผ ๋ฐ๋ก ๋ง๋๋ ๊ฒ์ด ์๋ user model ์์ ๋ง๋ค๊ณ serializer๋ฅผ ํ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ข ๋ ์์ํ๊ฒ ๋ถ๋ฌ์ฌ ์ ์๋๋ก ์งํํด๋ณผ ๊ฒ์ ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๋ ๊ฒ์ ํญ์ ํด์์๋๋ฐ, ํ ๋๋ง๋ค ์ด๋ ค์ ์ต๋๋ค. ์ด๋ฒ์ ํ๋ก ํธ์ ๋ฐฑ์ ๋ถ๋ฆฌํด ์งํํด ๋ณด์๊ธฐ ๋๋ฌธ์ ๋ค์ ํ๋ก์ ํธ์์๋ ์ข ๋ ์์ํ๊ฒ ํ ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.
- ์ ์ฃผํ
๊ธฐํ๋ถํฐ ๋ฐฐํฌ๊น์ง ๋ชจ๋ ๋ถ๋ถ์ ๋ค๋ค๋ณผ ์ ์์ด์ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ๋ง์ด ๋ฐฐ์ธ ์ ์๋ ํ๋ก์ ํธ์์ต๋๋ค. ๊ทธ๋์ ๋ฐฐ์ ๋ DRF ๊ธฐ๋ณธ ๊ธฐ๋ฅ ๊ตฌํ์ ์ง์ ํด๋ณด๋ฉด์ DRF์ ๊ฐ ์์๋ค(ํนํ, serializer, orm)์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์์๊ฐ ์ ์์์ต๋๋ค. ๋ํ, ์ด์ ๋ง์ถฐ ํ๋ก ํธ๊น์ง ํจ๊ป ์ฝ๋๋ฅผ ์์ฑํด๋ณผ ์ ์์ด์ ์ข์์ต๋๋ค. ํ์ง๋ง ์ด ๊ณผ์ ์์ ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ api๋ก ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ํ๊ณ๋ฅผ ๋ง์ด ๋๊ผ์ต๋๋ค.
ํจ์จ์ด ๋จ์ด์ง๋ ์ฝ๋๋ผ๋ ๊ฒ์ ์ค์ค๋ก ์ธ์งํ์ง๋ง ๋ ๋์ ํด๊ฒฐ์ฑ ์ ์ฐพ์ง ๋ชปํด ์ค์ค๋ก ์์ฌ์์ ๊ฐ๊ฒ ๋๋ ์๊ฐ๋ค์ด ์์์ต๋๋ค. ๋ฆฌํํ ๋ง๊ณผ ๊ณต๋ถ๋ฅผ ํตํด ์ถํ ๊ผญ ๊ฐ์ ํ๊ณ ์ถ์ต๋๋ค.
๋ฐฐํฌ๋ฅผ ํ๋ฉด์๋ ๋ง์ ์ค๋ฅ๋ฅผ ๊ฒช์ ๋งํผ aws(ec2, s3)์ gunicorn์ ๋ํ ๊ฐ์ ์ก๊ณ ๋ง์ด ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ์งง์๋ ํ๋ก์ ํธ ๊ธฐ๊ฐ๋งํผ ์์ฌ์ด ์ ์ด ๋ง์ต๋๋ค. ๋จ์ ์ด๋ฒ ์ฃผ ์๊ฐ์ ํ์ฉํด ๋ณด์ํด์ ๋ค์ ํ๋ก์ ํธ์๋ ๊ฐ์ ๋ ์ฌํญ์ ๋ฐ์ํด์ผ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ ํ, ๋ง์ธ๐๐๐
- ๊น๊ฒฝ์
์ด๋ฒ ํ๋ก์ ํธ๋ ์์ฑ๋๊ฐ ๊ต์ฅํ ๋์ ๊ฑฐ ๊ฐ์์ ๋ฟ๋ฏํฉ๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์ ๋ฐฑ์ค๋์ ํ๋ก ํธ๋ฅผ ๋ถ๋ฆฌํ์๋๋ฐ ์ด๊ฒ์ ์ฐ๊ฒฐ์ํค๋ฉด์ ๋ฐฑ ๊ณผ ํ๋ก ํธ์ ์ํธ์์ฉ ์๋ก์ ๊ด๊ณ์ ๋ํด ๋ง์ ๊ณต๋ถ๊ฐ ๋์์ต๋๋ค. ๊ทธ๊ฐ ๊ณต๋ถํ๊ณ ๋ด ๊ฒ์ผ๋ก ๋ง๋ ๊ฒ๋ค์ด ๋์์จ ๊ฒ ๋๊ปด์ ธ์ ์ ์๊ฒ๋ ๊ต์ฅํ ์ข๊ณ ์ฑ์ฅํ ์ ์๋ ๋ฐํ์ด ๋๋ ํ๋ก์ ํธ์์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์ Django Rest Framwork ๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ์์ผ๋ก ์์ ํ ํ๋ก์ ํธ์ฌ์ DRF์ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ฅ๋ค๊ณผ ๋งค๋ ฅ์ ์ถฉ๋ถํ ๋๊ผ๊ณ ์ฌ๋ฐ๊ฒ ๊ฐ๋ฐ์ ํ๋ฉฐ ํ๋ก์ ํธ๋ฅผ ์งํ ํ ๊ฒ ๊ฐ์ต๋๋ค.
DRF๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ฐ ์์๋ค์ด ์ด๋ป๊ฒ ์์ฉํ๋์ง, ๊ฐ ์์๋ค์ ๊ด๊ณ๋ค์ ๊ณต๋ถํ๋ ๊ฒ์ด ์ฌ๋ฏธ์์ด์ ๋ค์ ํ๋ก์ ํธ ๋๋ ์ด ์ ์ ๊น๊ฒ ํ๊ณ ๋ค์ด๊ฐ์ DRF์ ๋ชจ๋ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉ ํ๋ ๋ฐฉํฅ์ผ๋ก ์งํ ํ๊ณ ์ถ์ต๋๋ค. ์ ๊ฐ ๋๋ DRF์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ serializer, orm์ ๋๋ค. serializer๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ถ๋ฌ์ฌ์ ์๋ ์ฅ์ ์ด ์์ด์ ๊ฐ๋ฐ์ ๊ต์ฅํ ํธ๋ฆฌํ์ต๋๋ค.
ํ๋ก ํธ ์์๋ ์ค๋ณต ID๊ฐ ์ฒ๋ฆฌ, str์ผ๋ก ๋ฐ์ ๋ฐ์ดํฐ number๋ก ๋ณํ, ํ ํฐ๊ฐ์ด ์๋ ์ ์ ์ ๊ทผ๊ธ์ง, ๋ฐฑ์์ ๋ฐ์ response์ ํ๋ก ํธ์์ ์ ์ดํด ์ฃผ๋ ๊ณผ์ ๋ฑ๋ฑ ํ๋ก ํธ๋ ๋งค์ฐ ์ฌ๋ฏธ์์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก๋ ๋ฐฐํฌ๋ฅผ ๋ด๋นํ๋๋ฐ ๋ฐฐํฌ๋ AWS๋ฅผ ์ฌ์ฉํ์๊ณ ํ๋ก ํธ๋ S3, ๋ฐฑ์ค๋๋ EC2๋ฅผ ์ฌ์ฉ ํ์๊ณ cloud9์ ์ฌ์ฉํ์ฌ ํตํฉ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ฐฑ์ค๋๋ฅผ ๋ค๋ค์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก๋ Route 53์ ์ฌ์ฉํ์ฌ ๋๋ฉ์ธ์ ์ ํ์ต๋๋ค.
์ด๋ฒ ํ๋ก์ ํธ์์ ์ ๋ ์๋ ์์ด ๋ง์ ์ค๋ฅ๋ฅผ ๊ฒฝํํ์ต๋๋ค. (ํนํ ๋ฐฐํฌ…) ํ์ง๋ง ์ด๋ฌํ ์ค๋ฅ๋ค์ ๋ง๋๋ฉด ํฌ๊ธฐํ๊ธฐ๋ณด๋จ ์ด๋ป๊ฒ๋ ํด๊ฒฐํ๊ณ ๋ฐฉ์์ ์ฐพ๊ณ ํด๊ฒฐํ๋ ๊ณผ์ ์์ ์ฑ์ฅํ๊ณ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ฉฐ ์ฑ์ทจ๊ฐ์ ๋๋ผ๊ณ ์ฑ์ฅํ๋ ๊ธฐ๋ถ์ ๋๊ปด์ ์ด๋ฒ ํ๋ก์ ํธ๊ฐ ๋์ฑ๋ ์์ฑ๋๊ฐ ๋์๊ณ ์์์ ์ด์ฌํ ํ๋ ํ์๋ค์ ๋ณด๋ฉฐ ์ ๋ํ ๋ชจ๋ ๋ ธ๋ ฅ์ ์์๋ถ์๊ณ ์ฌ๋ฐ๋ ๊ฐ๋ฐ์ ํ์์ต๋๋ค~~