์ด๋ฒ ํฌ์คํ ์์๋ ์ด๋ฒ ํ๋ก์ ํธ์ ๊ฐ๋ฐ ๊ณํ๊ณผ ๊ฐ๋จํ ์ง์ฒ์ฌํญ์ ๊ธฐ์ ํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ธฐ๋ก ํ๋ค.
ํ๋ก์ ํธ ์์ด๋์ด ๊ตฌ์๊ณผ ๊ฐ๋ฐ ๊ณํ์ ์๋ฆฝํ๋๋ฐ์ ๋ง์ ์๊ฐ์ ํ ์ ํ๋ค.
๋ฉํ ๋๊ป ์กฐ์ธ ๋ค์ ๋ฐ์ ๋ฐ๋ผ ์ธ๋ถ ๊ธฐ๋ฅ๋ณด๋ค๋ ์ฃผ์๊ธฐ๋ฅ์ ๋์์ ๋ชฉํ๋ก ์์ ํ๊ฒ ๋์๊ณ , ๋๋ ๊ณํ ๊ด๋ฆฌ, ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ, DB์ ๋ฐฑ์๋ ๊ตฌํ, AI๋ชจ๋ธ ๊ฒฝ๋ํ ๋ถ๋ถ์ ํ์ ์๊ฒ ๋์๋ค.
์ดํ๋ฆฌ์ผ์ด์ 1์ฐจ ์ค๊ณ
๊ฐ๋ฐ ํ๊ฒฝ ์์ธ
์ฌ์ค ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ์ ๋ง์ ์๊ฐ์ ํ ์ ํ๋ค. ์ด๊ธฐ ๊ตฌ์ ํ๋ก์ ํธ์์ ์ด์ ์ ์ฌ์ฉํด๋ณด์ง ์์๋ ํ๋ ์์ํฌ์, ํ๊ฒฝ, ํ์ด์ฌ ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ฒ์ฆ ๊ณผ์ ์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๊ณ ๋ง์ ์์ ์ด ์์๋ค.
์ ์ฒด์ ์ผ๋ก ํ์ฌ ์ํ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด์๋ค.
Framework
๊ฐ๋ฐ ํ๋ ์ ์ํฌ์ ๊ฒฝ์ฐ Django๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ค.
Django๋ ํ์ด์ฌ์ ์น ํ๋ ์์ํฌ๋ก, ์ด์ ์ ํ๋ก์ ํธ์์ ์ฌ์ฉํด์๋ springboot์๋ ๋ฌ๋ฆฌ MTV ๋์์ธ ํจํด์ ๊ฐ์ง๊ณ ์๋ค.
์ธ์ด
Django๋ฅผ ์ฌ์ฉํ ๊ณํ์ด๋ฏ๋ก ๋น์ฐํ ์ธ์ด๋ python์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ค.
Database ํ๊ฒฝ
๊ธฐ์กด ๊ณํ์ MongoDB๋ฅผ ์ฌ์ฉํ ์์ ์ด์์ผ๋ Django์์ ๋ฒ์ ์ถฉ๋๊ณผ Django์ ์ฅ์ ์ธ MTV๋ฅผ ํ์ฉํ๊ธฐ ์ด๋ ต๋ค๊ณ ํ๋จํด MySQL์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ AWS์ RDS instance๋ฅผ ํตํด MySQL์ ์ฌ์ฉํ๋ค.
์๋์ ์ํ ์ด๊ธฐ ๊ฐ๋ฐ์ ์๋ฃํ๊ณ Redis๋ฅผ ํ์ฉํ์ฌ ์ง์ ๋์ด๋ ๋ฐฉํฅ์ผ๋ก ๊ณํ์ ์ธ์ ๋ค.
๋ฐฐํฌ ํ๊ฒฝ
๋ฐฐํฌํ๊ฒฝ์ผ๋ก๋ AWS EC2 ์ธ์คํด์ค๋ฅผ ํ์ฉํ์ฌ ๋ฐฐํฌํ ์์ ์ด๋ค.
๊ฐ๋ฐ์ ๊ฒฝ์ฐ ๋ก์ปฌ์์ ์งํํ๊ณ , ๋๊ณ๊ณ์ ํ๊ธฐ์ EC2๋ฅผ ์ด์ฉํด ๋ฐฐํฌํ ๊ณํ์ด๋ค.
์ธ๋ถ ํ๋ฌ๊ทธ์ธ
ํฌ๊ฒ๋ JS์ j์ฟผ๋ฆฌ์, CSS, Openai, stablity_sdk๋ฅผ ํ์ฉํ๋ค. ์ฌ๊ธฐ์ ๋จธ์ ๋ฌ๋์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ถ๊ฐ๋ ์ ์๊ฒ ๋ค.
๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ๊ณผ์
๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ๋๋ฐ์ ์์ด์ ๋ฌธ์ ๋ 2๊ฐ์ง ์ ๋๊ฐ ์์๋ค.
์ฒซ๋ฒ์งธ๋ mongodb์ django์ ๋ฌธ์ ์๊ณ , ๋๋ฒ์งธ๋ ๊ฐ์ํ๊ฒฝ์ ํตํ ๋ฒ์ ๊ด๋ฆฌ์ ์ถฉ๋ ํด๊ฒฐ์ ์์๋ค.
๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ๋๊ฒ์ด ์ฒ์์ด์๊ธฐ ๋๋ฌธ์, ์ด๊ป ๋๋จธ๋ก ๋ณด๋ฉฐ ๋ฐฐ์ด ์ ๋์์๋ ์ฌ์ค ์์์น ๋ชปํ ๋ถ๋ถ์์ ์ฆ์ ์ค๋ฅ์ฌํญ๋ค์ด ๋ฐ์ํ๋ ๊ฒ ๊ฐ๋ค.
MongoDB์ Django
์ฌ์ค ์ด ๋์ ๋ณด์์๋ ๋ณ๊ฐ๋ก๋ ์ ํ ๋ฌธ์ ๊ฐ ์์ด ๋ณด์ธ๋ค. ์ค์ ๋ก๋ ๋ณ๊ฐ๋ก ์๊ฐํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๋ค.
Mongodb์ ๊ฒฝ์ฐ NoSQL์ด๊ธฐ ๋๋ฌธ์ SQL์ ๊ฐ๋จํ๊ณ ๋ช ์ธํ ํ๊ธฐ ์ฝ๊ณ , ๊ด๊ณํ์ ์ด ์ฉ์ดํ๋ค๋ ์ฅ์ ์ ์ด์ฉํ๊ธฐ ํ๋ค์ง๋ง(์์๋ณธ ๋ฐ์ ๋ฐ๋ฅด๋ฉด NoSQL์ SQL์ฒ๋ผ ํ์ฉํ๋ ๋ฐฉ์์ด ์๊ธด ํ์ง๋ง, Join์ด ๋ถํธํ๋ค.) ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ ์์ ๋งค๋ ฅ์ ์ด๋ค.
Django์ ๊ฒฝ์ฐ ํธ๋ ์ ์ ๊ด๋ฆฌ์ ์ฌ์ด ๋ฌธ์ํ๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๊ณ , ๋ฌด์๋ณด๋ค ๋ค์ํ ํ ํ๋ ์์ง๊ณผ ์ฌ์ฉ์ ์ธ์ฆ ๊ธฐ๋ฅ, ORM์ ์ ๊ณตํ๋ค๋๋ฐ์ ์๋ค.
๋ฌธ์ ๋ ๋์ ํจ๊ป ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์๋ค.
Django๋ SQL๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ผ๋ํด ๋๊ณ ์ค๊ณ๋์๋ค. ๋ฐ๋ผ์ MongoDB์ ๊ฐ์ NoSQL๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํจ๊ป ์ฌ์ฉํ๊ฒ ๋ ๋์๋ ์ฅ๊ณ ์ดํ๋ฆฌ์ผ์ด์ ๋ค์ ๊ตฌ์กฐ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ๊ฐ ์ด๋ ต๋ค๋ ๊ฒ์ด๋ค. ๋ํ Django์์๋ ๊ทธ๋ฐ ์ด์ ๋ก MongoDB์ ๋ํ ์ง์ ํด์ด ์๋์ ์ผ๋ก(๋งค์ฐ๋งค์ฐ) ์ ๋ค๋๊ฒ์ด๋ค.
https://he-kate1130.tistory.com/42
์ด์ ์ ์์ฑํ๋ ํฌ์คํ ์ ํตํด Django์ MongoDB์ ์ฐ๊ฒจ๋กธ์ ์ ์ดํด๋ณด๋ฉด ๊ทธ ๊ทผ๊ฑฐ๋ฅผ ๋ ์ฝ๊ฒ ์ ์ ์๋ค.

Django์ MongoDB๋ฅผ ํจ๊ป ์ฐ๊ธฐ ์ํด์๋ ๋๋ต 3๊ฐ์ง ์ ๋์ ๋ฐฉ์์ ์ธ ์ ์์ผ๋ฉฐ, ์ด๋ MongoDB์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์๋ด๋์ด์๋ค. ํ์ง๋ง ๊ฐ๋ฐ์ ์ํด ๋ง์ด ์ฌ์ฉ๋๋ djongo๋ ์ด์(๊นํ๋ธ)๊ฐ ๋๋ฌด ๋ง๋ค๋ ์ ์ ์์ด์ ์์ ์ฑ์ด ๋จ์ด์ง๋ค.
MongoDB๋ฌธ์์์ ๋์๋ฏ์ด Pymongo๋ฅผ ํ์ฉํ ์ ์์ผ๋, ์ด๋ ๊ฒ ๋๋ฉด django์ MTV๋์์ธ ํจํด ์ค M(model)๊ณผ V(view)๋ฅผ ํฉ์ณ๋ฒ๋ ค์ผ ํ๋ค๋ ๊ฒ์ด๋ค.(view์์ ๋ชจ๋ ๊ฑธ ํด๊ฒฐํด์ผ ํ๋ค. ๋น๋ํด์ง๋ view...) ๊ฒฐ๊ตญ django๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ด ์ฌ๋ผ์ง๋ค ํ๋จํ๋ค.
์ด๋ป๊ฒ๋ View์์ ํด๊ฒฐ์ ํ๋ค๊ณ ํด๋ django์ ORM์ด SQL์ ์ ํฉํ๋๋ก ๋์ด์๋ค๋ ๊ฒ๊ณผ, ์ธ์ฆ๋ฑ์ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ง์ ๊ตฌํํด์ผ ํ๋ค๋ ์ ์์ ์ฐ๋ฆฌ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ MySQL๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๊ฒฝํ๊ฒ ๋์๋ค.
๊ฐ์ํ๊ฒฝ๊ณผ ๋ฒ์ ์ถฉ๋
์ฒ์ DB๋ฅผ MongoDB๋ก ์๊ฐํ๊ณ ์์๊ธฐ ๋๋ฌธ์ MongoDB๊ถ์ฅ ํ์ด์ฌ ๋ฒ์ ์ธ 3.12.0์ ์ฌ์ฉํ๊ฒ ๋์๋ค. ๊ทธ๋ฌ๋, ๋จธ์ ๋ฌ๋ ํํธ์์ ์ฌ๋ฌ ์ถฉ๋ ๋ฌธ์ ๋ก ์ด์ ์ ์ฌ์ฉํ๊ณ ์๋ ํ์ด์ฌ 3.10์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์๊ฒฌ์ด ์ขํ์ก๊ณ , ๊ฐ์ํ๊ฒฝ์ ์ฌ๊ตฌ์ฑ ํ๊ฒ ๋์๋ค.
๋ฐฑ์๋์์ ์์ ์ ํ๋ฉด์ ๋ฒ์ ์ถฉ๋์ ๊ฒช๊ณ , ์๋ฌ๋ฅผ ๋ณด๋ ๊ฒ์ ํํ ์ผ์ด๋ค(์๋ง๋...)
3.12.0์์ 3.10์ผ๋ก ๋ฒ์ ์ ๋ค์ด๊ทธ๋ ์ด๋ํ๋๊ฒ์ ๋ํด์ ๋ง์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐ์ง ์์์ง๋ง, ํ์ด์ฌ๊ณผ, MS๋น๋ ํด๊ณผ .whlํ์ผ๋ค ๋ฑ ๋ง์ ์๋๋ฅผ ํตํด ๋ค์ด๊ทธ๋ ์ด๋์ ํ๊ฒฝ ์ค์ ์ ๋ง์น ์ ์์๋ค.
ํธ๋ฌ๋ธ ์ํ ์ ์ ๋ง ์๊ฐ์ด ๋ง์ด ๋ค์๊ณ , ์ด์ ์ ๋ฐ์ํ ์ ์๋ ์๋ฌ๋ค์ด ์ฌ๋ฐ์ํ๋ ์ํฉ์ด ๋ช๋ฒ ๋ฒ์ด์ง๋ค ๋ณด๋ ํธ๋ฌ๋ธ์ํ ์ ๋ํ ๊ธฐ๋ก์ ๋จ๊ธฐ๋๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค๋ ์ฌ์ค์ ์์๋ค. (๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ์์ฃผ ์ผ์ผํค๋ ์น๊ตฌ๊ฐ ๋๊ตฐ์ง ์์๋๋ค)
๋ํ venv๋ฅผ ํตํด ๋ก์ปฌ์์ ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค์ด ์์ ํ ์ ์์ง๋ง conda๋ฅผ ์์ผ๋ก๋ ๋ ์ ์ฉํ ๊ฒ ๊ฐ๋ค.
RDS, MySQL Workbench
MySQL์ ์ฌ์ฉํ๊ธฐ ์ํด RDS ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ django์ ์ฐ๊ฒฐํ๋ค.
์ดํ MySQL workbench๋ฅผ ํตํด ์์ฝ๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
RDS๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ค์ ํฌ์คํ ์ ์ฐธ์กฐํ์.
EC2 ์ธ์คํด์ค ์์ฑ
์ฐ๋ฆฌ ํ์ ๊ฐ๋ฐ์ ๊นํ๋ธ๋ฅผ ํ์ฉํด ๋ก์ปฌ์์ ์งํํ๋๋ก ํ๊ณ , ๊ฐ๋ฐ ํ ์ ๋ํ์ฌ EC2๋ฅผ ์ด์ฉํด ์๋ฒ๋ฅผ ๋ฐฐํฌํด๋ณด๊ธฐ๋ก ํ๋ค.
๋ฐ๋ผ์ ํ์ฌ ์ฐ๋ฆฌ ํ์ ์ฝ๋๋ ๋ก์ปฌ์์ ๋๋ฆฌ์ง๋ง, ๋๋ ํน์๋ชจ๋ฅผ ๊ฐ๋ฐ ํ ํฌ๋ฅผ ๋๋นํด ๋ฏธ๋ฆฌ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค.
์์ฑ ๊ณผ์ ์ ๋ค์์ ์ฐธ์กฐํ์.
https://he-kate1130.tistory.com/43
๋ชจ๋ธ ์ค๊ณ
์ด๋ฒํ๊ธฐ ์ฐ๋ฆฌ ํ์ ํต์ฌ ๊ธฐ๋ฅ ์๋์ ์ํด์ ํต์ฌ ๊ธฐ๋ฅ์ธ ์ผ๊ธฐ๊ตฌํ๊ณผ ์ ์ ์ ๋ํด์ ๊ฐ๋จํ ์์ ๋ชจ๋ธ์ ์ค๊ณํ๊ฒ ๋์๋ค.
๊ตฌํ์ ํธ์๋ฅผ ์ํด์ MTV์ ์น ํ์ด์ง ๊ตฌ์ฑ์ ๋ํด์ ๊ฐ๋จํ๊ฒ ์ผ๊ธฐ์ ์ ์ ๋๊ฐ์ง๋ก ๋๋์ด ๋ธ๋ฆฌํํด๋ณธ๋ค.
๋จผ์ ์ ์ ์ ๊ฒฝ์ฐ ์ด๋ฏธ ์ฅ๊ณ ์ ์ธ์ฆ๊ธฐ๋ฅ์ด ์ง์๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ํ์ฉํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์์ ์ด์ฉํ๋ค.

Model์ ๋ฐ๋ผ์ AbstractUser๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ก ์ ์ ์์ด ์ฌ์ฉํ๋ค
View์ ๊ฒฝ์ฐ ํ ์คํธ๋ฅผ ํ ์ ์๋๋ก ํ์๊ฐ์ , ํ์๊ด๋ฆฌ, ๋ก๊ทธ์ธ, ๋ก๊ทธ์์๋ง ์ ํ ๊ตฌํํ๋ค.

Urls์ ๊ฒฝ์ฐ ๋ํ View์ ๋ง์ถฐ ๋ค์์ฒ๋ผ ๊ตฌ์ฑํ๋ค.

์ผ๊ธฐ์ ๊ฒฝ์ฐ ์ผ๊ธฐ์ CRUD๊ธฐ๋ฅ๊ณผ, ์ผ๊ธฐ ๋ด์ฉ์ prompt ์์ฑAI์, ๊ฐ์ ๋ถ์์ฉ KoBert์ ์ ๋ ฅํ๊ณ , ์์ฑ ์ด๋ฏธ์ง๋ฅผ ๋์ฐ๋ ๊ฒ๊น์ง๋ฅผ ๋ชฉํ๋ก ๋๊ณ ์์ ํ์๋ค.
ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ค.

Model์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ค.

View์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ํ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค

view์ ๋ฐ๋ผ์ url์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ค.

๋ํ ์ผ๋ณด๋ค๋ ๊ธฐ๋ฅ์ ์๋์ ์ค์ ์ ๋๊ณ ๋น ๋ฅด๊ฒ ๊ตฌํํ๋ค. ์ดํ์๋ ๋ํ ์ผ๊ณผ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํจ์จ์ ๋์ด๋ ๋ฐฉํฅ์ผ๋ก ์์ ์ด ์งํ๋ ๊ฒ์ด๋ค.
์์ธ ์ฝ๋๋ ๊นํ๋ธ๋ฅผ ํตํด ํ์ธํ ์ ์๋ค :)
๋ง์ง๋ง์ผ๋ก ํ์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ 1์ฐจ ์น ํ์ด์ง๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ค.

'๐ฅProject > Team22' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Team 22] Django REST Framework (2) - Serializers (0) | 2024.02.03 |
---|---|
[Team 22] Django REST Framework(1) (0) | 2024.02.03 |
[Team22] EC2 ์ธ์คํด์ค (0) | 2023.11.10 |
Pymongo๋ก DB ์ฐ๊ฒฐํ๊ธฐ (MongoDB Atlas, Django) (0) | 2023.11.10 |
[Django] Django์ ๋์์ธ ํจํด : MTV (0) | 2023.11.03 |