๋ฐฐํฌ๋งํฌ : ๋งํฌ
๋
ธ์
ํ์ด์ง : ๋งํฌ
์์ฐ ์์ : ๋งํฌ
์ฌ์ฉ์์ ์ทจํฅ์ ๋ง์ถ์ด ๊ทธ๋ ์ ๋ณด๊ณ ์ถ์ ์ํ ์ฝํ ์ธ ๋ฐ ์ทจํฅ์ ๋ง๋ ์ํ๋ฅผ ์ถ์ฒํ๊ธฐ ์ํ ์๋น์ค ์ํ ๊ฒ์ ๊ธฐ๋ฅ ๋ฐ ์ ๋ณด ํ์ธ, ์ฑ๋ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ฌ์ฉ์๋ ์์ ์ด ์ข๊ฑฐ๋ ๋์๊ฒ ๋ณด์๋ ์ํ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์ทจํฅ์ ๋ง๋ ์ปจํ ์ธ ๋ฅผ ์ถ์ฒ๋ฐ์ ์ ์๋ค.
์ฐธ๊ณ ์ฌ์ดํธ(์์ฑ ํผ๋์): ๋งํฌ
- ์๋ผ์คํฑ ์์น๋ฅผ ์ด์ฉํ ๊ฒ์ ๋ฐ ์ถ์ฒ ์๋น์ค ๊ฐ๋ฐ
- Open API๋ฅผ ์ด์ฉํ ์ฑ๋ด ๋ฐ ๋ค์ํ ์ํ ๋ฐ์ดํฐ ๋์
- JWT๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
ํ๋ก์ ํธ๊ฐ ์์๋ ์ด์ ์ ํ์ฌ ๋ฌธ์ ์
- ์์์ง๋ ์ปจํ ์ธ ์ค ๋ด๊ฐ ์ข์ํ ๋งํ, ๋ด๊ฐ ๋ณด๊ณ ์ถ์ ์ฝํ ์ธ ๋ฅผ ์ฐพ๊ธฐ ์ด๋ ค์.
- ์ํ์ ๋ํ ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ์ฌ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ปค๋ฎค๋ํฐ์ ํ์์ฑ์ ๋๋.
- ์ทจํฅ์ ๋ง๋ ๋ค๋ฅธ ๋งค์ฒด์ ์ฝํ ์ธ ๋ ์ถ์ฒ ๋ฐ๊ณ ์ถ์.
| ์์์ฐ(ํ์ฅ) | ๊น์์ | ๊น๊ท์ผ | ๋ฐฉ๋ํ | ์ต์ ์ธ |
|---|---|---|---|---|
| ํ์ ๋ก๊ทธ์ธ, ๋ก๊ทธ์์, ์๋ฒ ๋ฐฐํฌ | ์ํ ์๋ฆฌ์ฆ ์ถ์ฒ | ์ํ ๋ฆฌ๋ทฐ, ์์ธ | ์ฑํ , ์ฑ๋ด | ์ํ ๊ฒ์ |
BackEnd
- Spring Boot 3.3.1, JAVA 23, JPA, Spring Security, JWT
- MySQL8.0, MongoDB 8.0.4
- Elasticsearch, logstash, kibana
FrontEnd
- React
- vite
- Tailwind
Infra
- AWS EC2
- Naver Cloud Platform
- terraform
- vercel
- Github Action
- Docker
Tool
- Intellij, Github, Visual Studio Code
- ๋ก๊ทธ์ธ/๋ก๊ทธ์์,ํ์๊ฐ์
- JWT, Spring Security๋ฅผ ํตํด ๊ธฐ๋ฅ ๊ตฌํ
- ์ฌ์ฉ์๊ฐ ์ ํธํ๋ ์ฅ๋ฅด์ ๋ฐ๋ผ ์ํ ์ถ์ฒ
- Elasticsearch index์ ๊ฒ์๋ฌธ ์ค๊ณ
- ์ํ ์ ๋ชฉ, ๊ฐ๋
์ ํค์๋๋ก ๊ฒ์
- nori, ์๊ทธ๋จ ๋ถ์๊ธฐ ์ ์ฉ
- ์ํ ์์ธ ์ ๋ณด, ๋ฆฌ๋ทฐ ์์ฑ
- ํ์๋ง ๋ฆฌ๋ทฐ ์์ฑ ๊ฐ๋ฅํ๋๋ก ๊ตฌํ
- ๋์์ ๋งํฌ๋ฅผ ํตํด ์๊ณ ํธ ์กฐํ ๊ฐ๋ฅ
- ์ํ ์ฅ๋ฅด ํค์๋์ ๋ฐ๋ผ ์ํ ์ถ์ฒ
- OpenAI ํ์ฉ
-
MongoDB ์ฌ์ฉ์ ์ ํฉ์ฑ ์ด์ ๋ฐ์ ๊ณผ์
- ํ๋ก์ ํธ ๊ธฐํ ์ค DB ์ ํ ๊ณผ์ ์์ ์ด์ ๋ฐ์
- ํ์ ๋ชจ๋ NoSQL ์ฌ์ฉ ๊ฒฝํ์ด ๋ถ์กฑํ์ฌ ์ด์ ๋ฐ์
ํ์ต ๋ด์ฉ
- NoSQL์ ์ข ๋ฅ ๋ฐ ์ฅ๋จ์ ( ๋ฌธ์ ์งํฅ, key-value store, column-fammily store, ๊ทธ๋ํ )
- ์คํ๋ง - MongoDB ์ฐ๊ฒฐ ์ค์ ๋ฐ ์ฌ์ฉ
์ ํ ์ด์
- userId๋ฅผ ํตํ์ฌ ์ฌ์ฉ์์ ์ด์ ๋ํ๋ฅผ ์ ๊ณต
- ์๋น์ค๋ฅผ ์ด์ฉํ๋ ์ด์ฉ์๊ฐ ๋ค์๊ฐ ๋ ๊ฒฝ์ฐ ๋น๋๊ธฐ์ ์ผ๋ก ์๋น์ค๊ฐ ์ ๊ณต๋์ด์ผ ๋๋ค๊ณ ์๊ฐ์ด ๋ค์ด NoSQL์ ์ฌ์ฉ
- NoSQL ์ค MongoDB(userId ์ธ๋ฑ์ค)์ Redis(userId key)๋ฅผ ๊ณ ๋ฏผ
- ๊ตฌํ ๊ธฐ๋ฅ์ค ์ฑ๋ด๊ณผ์ ํต์ ๊ณผ์ ์์ TMDB API์์ ๊ฐ์ ธ์จ JSON ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ณ , ์ธ๋ฉ๋ชจ๋ฆฌ ํํ๋ก Redis๋ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ์ข ๋ฃ๋๋ฉด DB๊ฐ ์ญ์ ๋๊ธฐ ๋๋ฌธ์ MongoDB๋ฅผ ์ ํ
-
Session vs Cookie ์ ํ ์ด์
- ๋ก๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์์ ์ธ์ ๋ฐฉ์์ผ๋ก ํ ์ง JWT๋ฅผ ์ด์ฉํ ํ ํฐ ๋ฐฉ์์ผ๋ก ํ ์ง์ ๋ํ ๊ณ ๋ฏผ
- ์ํ ์ถ์ฒ ์๋น์ค์ ๊ฒฝ์ฐ ๋ณด์์ด ์ค์ํ ์๋น์ค๊ฐ ์๋๋ฏ๋ก JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ ๋ฐฉ์์ผ๋ก ๊ตฌํํด๋ ์๋น์ค์ ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฑฐ๋ผ๋ ํ๋จ์ด ๋ค์์.
- Oauth2๋ฅผ ๋์ ํ๋ฉด ๊ฐ๋ฐ ๊ธฐ๊ฐ์ ๋นํด ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ค์ด๋ ์ฝ์คํธ๊ฐ ๋์์ง ๊ฒ์ผ๋ก ์์


