์ฃผ์ : ์ฌ์ฉ์ ๋ง์ถคํ ๋ ์จ ์ ๋ณด ์ ๊ณต ๋ฐ ์ํธ์์ฉ ํ๋ซํผ
๋์: ๋ ์จ ์ ๋ณด ํ์ฉ ๋ฐ ์ํธ์์ฉ์ ๊ด์ฌ์ด ์๋ ์ฌ์ฉ์
- ์ ํํ ๋ ์จ ์ ๋ณด ์ ๊ณต: ๊ธฐ์์ฒญ ๋ฐ์ดํฐ์ AI ๋ถ์์ ํตํด ์ง์ญ๋ณ ๋ง์ถคํ ๋ ์จ ์ ๋ณด ์ ๋ฌ
- ๋ฏธ์ ์ํ๊ณผ ์ปค๋ฎค๋ํฐ ๊ฐํ: ๋ ์จ ๊ธฐ๋ฐ ๋ฏธ์ ๊ณผ ์ปค๋ฎค๋ํฐ ์ํธ์์ฉ์ ํตํด ์ฌ์ฉ์ ์ฐธ์ฌ ์ ๋
- ๊ธด๊ธ ์ํฉ ๋์: ๊ธฐ์ํน๋ณด ์ฑํ ์ผ๋ก ์ค์๊ฐ ์ ๋ณด ๊ณต์ ๋ฐ ๋์
- โ๏ธ React: ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ๊ฐ๋ฐ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๐ฑ Spring Boot: ๊ฐ๋ ฅํ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ ์์ํฌ
- ๐ฌ MySQL: ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ์ ์ฌ์ฉ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๐ Redis: ์บ์ฑ ๋ฐ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ฅ
- ๐ฌ Kafka: ๋ฉ์์ง ํ ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ๋๊ตฌ๋ก ์ค์๊ฐ ์ฑํ ๋ฐ ์๋ฆผ ๊ตฌํ
- ๐ ๏ธ Jenkins: CI/CD ์๋ํ๋ฅผ ์ํ ๋๊ตฌ
- ๐ฆ Docker: ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋ํ
- โธ๏ธ Kubernetes: ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋ฐ ๊ด๋ฆฌ
- ๐ Argo: DevOps ์ํฌํ๋ก์ฐ ๊ด๋ฆฌ
- โ๏ธ AWS: ํด๋ผ์ฐ๋ ์ธํ๋ผ ํธ์คํ
- ๐ Nginx: ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ฐ ์น ์๋ฒ
- ๐ Python: ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ AI ๋ชจ๋ธ ๊ฐ๋ฐ
- ๐ LangChain: AI ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ํ๋ ์์ํฌ
- ๐ GitHub: ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ์์ค ์ฝ๋ ๊ด๋ฆฌ
- ๐ Notion: ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐ ๋ฌธ์ํ
- ๐ฎ Discord: ํ ์ปค๋ฎค๋์ผ์ด์
- ๐จ Figma: UI/UX ๋์์ธ
-
JWT ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ธ์ฆ
- ์ฌ์ฉ์ ๋ก๊ทธ์ธ/ํ์๊ฐ์ ์ JWT ํ ํฐ ๋ฐ๊ธ ๋ฐ ์ธ์ฆ ๊ด๋ฆฌ.
- STOMP ํค๋์ JWT ํ ํฐ์ ํฌํจํด ์ค์๊ฐ ์ฑํ ์์๋ ์ธ์ฆ ์ฒ๋ฆฌ.
- ํ ํฐ์์ ์ฌ์ฉ์ ID๋ฅผ ์ถ์ถํ์ฌ ์ปค๋ฎค๋ํฐ, ๋ฏธ์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ํ์ฉ.
-
ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
- ์ผ๋ฐ ํ์๊ฐ์ ๋ฐ ์นด์นด์ค ์์ ๋ก๊ทธ์ธ ์ง์.
- ๋น๋ฐ๋ฒํธ ๊ฒ์ฆ ๋ฐ ๋๋ค์ ์ค๋ณต ๋ฐฉ์ง ์ฒ๋ฆฌ.
-
์ฌ์ฉ์ ์ ๋ณด ๊ด๋ฆฌ
- ์ฌ์ฉ์ ์ ๋ณด ์์ , ๋๋ค์ ๋ณ๊ฒฝ, ๋ก๊ทธ์์ ๋ฐ ํ์ ํํด ๊ธฐ๋ฅ ์ ๊ณต.
-
๋ ์จ ๊ธฐ๋ฐ ๋ง์ถคํ ๋ฏธ์ ์ ๊ณต
- ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์์นจ, ์ ์ฌ, ์ ๋ ๊ธฐ์ค์ผ๋ก ์ต๋ 3๊ฐ์ ๋ฏธ์ ์์ฑ.
- ์์ ๋ฏธ์ : "์์ ๊ฑฐ๋ฅผ ํ์ธ์", "ํ ๋ธ๋ฌ๋ฅผ ์ฌ์ฉํ์ธ์".
- ๊ฐ ๋ฏธ์ ๋ง๋ค ํฌ์ธํธ ์ง๊ธ๋ฅ ๋ฐ ์งํ ์ํ ํ์.
-
AI ๊ธฐ๋ฐ ๋ฏธ์ ์ธ์ฆ
- ์ฌ์ฉ์๊ฐ ๋ฏธ์ ์ ๋ง๋ ์ฌ์ง์ ์ฒจ๋ถํ๋ฉด AI๊ฐ ํด๋น ์ฌ์ง์ ์ ํฉ์ฑ์ ๊ฒ์ฆ.
- ์ธ์ฆ ์ฑ๊ณต ์ ํฌ์ธํธ ์ง๊ธ ๋ฐ ์คํจ ์ ์ฌ๋์ ๊ฐ๋ฅ.
-
ํฌ์ธํธ ๋ฐ ๋ญํน ์์คํ
- ํฌ์ธํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ๋ญํน ์ ๊ณต.
- ์์ ํ์ธ ๋ฐ ๊ฒ์ ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์ ๊ฒฝํ ํฅ์.
-
์์น ๊ธฐ๋ฐ ๊ฒ์๊ธ
- ์ฌ์ฉ์์ ํ์ฌ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๊ฒฝ 5km ๋ด ๊ฒ์๊ธ ํ์.
- ์์น ๋ณ๊ฒฝ ์ ์นด์นด์ค๋งต API๋ฅผ ํตํด ์๋ก์ด ์์น ๋ฐ์ ๋ฐ ๊ฒ์๊ธ ์ ๋ฐ์ดํธ.
-
๊ฒ์๊ธ ์์ฑ
- ์ ๋ชฉ(20์) ๋ฐ ๋ณธ๋ฌธ(150์) ๊ธ์ ์ ์ ํ์ ํตํด ์ฌ์ฉ์ ๊ฒฝํ ์ต์ ํ.
- ์ข์์/์ซ์ด์ ๋ฒํผ์ผ๋ก ๊ฒ์๊ธ ์ ๋ขฐ๋ ํ๊ฐ ๊ฐ๋ฅ.
-
๋ด๊ฐ ์์ฑํ ๊ธ ๊ด๋ฆฌ
- ์ฌ์ฉ์๊ฐ ์์ฑํ ๊ธ์ ๋ฆฌ์คํธ๋ฅผ ํ์ธ ๋ฐ ์ญ์ ๊ฐ๋ฅ.
- ๊ธฐ์ํน๋ณด์ ๋ฐ๋ฅธ ์ค์๊ฐ ์ฑํ
๋ฐฉ ์์ฑ
- ๊ธฐ์ํน๋ณด ๋ฐ์ ์ ํด๋น ์ง์ญ์ ์ฌ์ฉ์๋ค์ ์ํ ์คํ ์ฑํ ๋ฐฉ ์๋ ์์ฑ.
- ์: "๊ฐ์๋ ๊ฑด์กฐ/ํํ ๊ฒฝ๋ณด ์ฑํ ๋ฐฉ".
- ๊ธฐ์ํน๋ณด ๋ฐ์ดํฐ ์
๋ฐ์ดํธ:
- Spring Scheduler๋ฅผ ํ์ฉํด 1์๊ฐ๋ง๋ค ๊ธฐ์์ฒญ API ํธ์ถ.
- ๊ธฐ์ํน๋ณด ๋ฐ๋ น ์ '์/๋' ๊ธฐ์ค์ผ๋ก ์ค์๊ฐ ๋จ์ฒด ์คํ์ฑํ ๋ฐฉ ์๋ ์์ฑ.
- ์ค์๊ฐ ์ฑํ
:
- Redis:
- ์ต์ ์ฑํ ๋ฉ์์ง 100๊ฐ๋ฅผ ์บ์ฑํ์ฌ ๋น ๋ฅธ ์ฑํ ๋ก๋ ์ ๊ณต.
- ์ฌ์ฉ์ ๊ฐ ์ค์๊ฐ ๋ฉ์์ง ๊ตํ ์ฑ๋ฅ ํฅ์.
- WebSocket + STOMP:
- ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ๊ตฌํ.
- ์ฑํ ๋ฐฉ ๋ด ๋ฉ์์ง ๋ธ๋ก๋์บ์คํ ๋ฐ ์ค์๊ฐ ์๋ฆผ ๊ธฐ๋ฅ ์ ๊ณต.
- Redis:
- WebFlux์ R2DBC๋ฅผ ํ์ฉํ ํ์ฅ:
- WeatherWise-Server-Chatting ๋ ํฌ์งํ ๋ฆฌ์์ MSA ๊ตฌ์กฐ๋ก ๊ตฌํ.
- WebFlux์ R2DBC๋ฅผ ์ฌ์ฉํด ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ก ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ ํฅ์.
๋ฌธ์ ์ํฉ
- ๊ธฐ์กด ๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ์์๋ Spring MVC๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋น ์ต๋ 400๋ช ์ ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ์ผ๋, ์ด ์ด์์ ํธ๋ํฝ์ด ๋ฐ์ํ๋ฉด ์๋ฒ๊ฐ ๊ณผ๋ถํ๋ก ์ธํด ๋ค์ด๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์.
- ์๋ต ์๋๊ฐ ๋๋ ค์ง๊ณ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์๋ ๋ฌธ์ ๊ฐ ์๊ธธ ๊ฐ๋ฅ์ฑ์ด ๋์์ง.
1. MSA ๋์ ๊ณผ WebFlux ์ ํ
- ์ฑํ ๊ธฐ๋ฅ์ ๋ ๋ฆฝ์ ์ธ MSA ์๋น์ค๋ก ๋ถ๋ฆฌํ์ฌ Spring WebFlux๋ฅผ ๋์ .
- WebFlux์ ๋น๋๊ธฐ/๋
ผ๋ธ๋กํน ํน์ฑ์ ํ์ฉํด ๋์ ๋์ ์ฒ๋ฆฌ ์ฑ๋ฅ ํ๋ณด.
- ๊ธฐ์กด Servlet ๊ธฐ๋ฐ์ ๋๊ธฐ ์์ฒญ-์๋ต ์ฒ๋ฆฌ ๋ฐฉ์์์ WebFlux ๊ธฐ๋ฐ์ ๋น๋๊ธฐ ๋ ผ๋ธ๋กํน ๋ฐฉ์์ผ๋ก ์ ํ
- ๋ค์์ ๋์ ์ฐ๊ฒฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ํ์ฅ์ฑ ํ๋ณด
- WebFlux๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ์ด๋ฒคํธ ๋ฃจํ ๊ธฐ๋ฐ์ ํจ์จ์ ์ธ ๋ฆฌ์์ค ์ฌ์ฉ์ผ๋ก ์๋ต ์๊ฐ์ด ๋จ์ถ๋จ
- Kafka๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง ํ ๊ธฐ๋ฐ์ ๋น๋๊ธฐ ํต์ ์ ์ ์ฉ, ์๋น์ค ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ์์ ์ฑ ๊ฐํ.
- ๋ฉ์์ง ์ก์์ ์์ ๋ฐ์ํ๋ I/O ๋ณ๋ชฉ ํ์์ ์ํํ๊ธฐ ์ํด Kafka๋ฅผ ๋ฉ์์ง ๋ธ๋ก์ปค๋ก ํ์ฉ
- WebSocket์ผ๋ก ์์ ๋ ๋ฉ์์ง๋ฅผ Kafka Producer๋ก ์ฒ๋ฆฌํด ๋ถ์ฐ ๋ธ๋ก์ปค์ ์ ์ฅ
- Kafka Consumer๊ฐ ๋ฉ์์ง๋ฅผ Redis์ ์ ์ฅํ๊ณ , ์ฑํ ๋ฐฉ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
- Kafka๋ฅผ ํตํด ๋ฉ์์ง ํ๋ฅผ ๊ด๋ฆฌํจ์ผ๋ก์จ ๋ถํ๋ฅผ ๋ถ์ฐ ์ฒ๋ฆฌํ๊ณ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์ง
- WebSocket์์ ์ง์ Redis์ ์ฐ๊ฒฐํ๋ ๋์ Kafka๋ฅผ ์ค๊ฐ ๊ณ์ธต์ผ๋ก ์ฌ์ฉํด ์์ ์ฑ๊ณผ ์ฑ๋ฅ ํฅ์
- Redis ์บ์ฑ ์ต์ ํ
- Redis๋ฅผ ์ฌ์ฉํด ์ฑํ ๋ฐฉ์ ์ต์ ๋ฉ์์ง 100๊ฐ๋ฅผ ์บ์ฑ
- ์ฌ์ฉ์ ์์ฒญ ์ Redis์์ ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํด ์๋ต ์๋ ํฅ์
- ๊ธฐ์กด Redis ์ ์ฅ ๋ฐฉ์์์ ๋์์ฑ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฝ(lock) ๋ฉ์ปค๋์ฆ ์ ์ฉ
- R2DBC๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ๊ฐ์
- R2DBC๋ฅผ ๋์ ํด MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํต์ ์ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ ํ
- ๊ธฐ์กด์ ๋๊ธฐ JPA ์ ๊ทผ ๋ฐฉ์์์ ๋ฐ์ํ๋ I/O ๋๊ธฐ ์๊ฐ์ ์ค์ฌ, ์ฑํ ๋ฐ์ดํฐ ์ ์ฅ ์ ์ฒ๋ฆฌ ์๋ ๊ฐ์
- ํธ๋์ญ์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋จํ ์ฑํ ์์คํ ์ ์ ํฉํ ๊ฒฝ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์์ผ๋ก ์ ํ
2. ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ณด์ฅ
- WebFlux์ Kafka๋ฅผ ํตํด ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์๋ 4๋ง ๊ฑด ์ด์์ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ 100% ์ ์ง.
- ๋ฐ์ดํฐ ์์ค ์์ด ๋ชจ๋ ๋ฉ์์ง๊ฐ ์์ ์ ์ผ๋ก DB์ ์ ์ฅ๋๋๋ก ์ค๊ณ.
๊ฒฐ๊ณผ
- ์ฒ๋ฆฌ๋ ์ฆ๊ฐ: ์ด๋น 400๋ช โ 1500๋ช ์ด์์ ์ฌ์ฉ์ ์์ฒญ ์ฒ๋ฆฌ ๊ฐ๋ฅ.
- ์๋ต ์๊ฐ ๋จ์ถ: ํ๊ท ์๋ต ์๊ฐ 80% ์ด์ ๊ฐ์.
- ๋ฐ์ดํฐ ์ ํฉ์ฑ: 100% ๋ฐ์ดํฐ ์ผ์น ๋ณด์ฅ.
- ๋ค์์ ๋์ ์ฐ๊ฒฐ ํ๊ฒฝ์์๋ ๋ฉ์์ง ์์ค ์์ด ์ค์๊ฐ ์ฑํ ๊ฐ๋ฅ.
๊ธฐ์กด ๋ชจ๋๋ฆฌ์ ์ํคํ
์ฒ ์์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ(MSA) ๋ก ์ ํํ๋ ๊ณผ์ ์ ์ค๋ช
ํฉ๋๋ค.
ํนํ, ์ฟ ํฐ ๋ฐ๊ธ ์๋น์ค์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Kafka๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ๋ฉ์์ง ์ฒ๋ฆฌ ๋ฐฉ์์ผ๋ก ์ ํํ ์ฌ๋ก๋ฅผ ์ค์ฌ์ผ๋ก ๋ค๋ฃน๋๋ค.
- ํน์ ํ๋ก๋ชจ์ ์ ํตํด ์ฌ์ฉ์์๊ฒ ์ฟ ํฐ์ ๋ฐ๊ธํ๋ ์ด๋ฒคํธ์ ๋๋ค.
- ์๋ ๋ฐ๊ธ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ์ฟ ํฐ์ ๋ฐ์ ์ ์์ต๋๋ค.
- ํ ์ฌ๋๋น ํ ๊ฐ์ ์ฟ ํฐ๋ง ๊ฐ์ง ์ ์๋ค.
- ๋น์ผ ๋ฏธ์ ํ๋๋ฅผ ์ธ์ฆ ๋ฐ์์ผ ํ๋ค.
- ์ด๋ฒคํธ ๊ธฐ๊ฐ ๋์, ๋งค์ผ ํน์ ์๊ฐ์ ์คํํ๋ฉฐ ์ด ์ง๊ธ ์๋์ ํ์ ํ๋ค.
- ์ฟ ํฐ ์ง๊ธ ์๋์ ๋น์ผ ์ ํด์ง ์์ ์ด๊ณผํ ์ ์๋ค.
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋จ์ผ ์๋น์ค ๋ด์ ํตํฉ๋์ด ์์ด ์๋์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค:
- ์๋ฒ ๋ง๋น: ํธ๋ํฝ์ด ๊ธ์ฆํ๋ฉด ์๋ฒ ์์์ด ๊ณ ๊ฐ๋์ด ๊ธฐ๋ณธ ๊ธฐ๋ฅ(์: ํ์๊ฐ์ , ๋ก๊ทธ์ธ)์กฐ์ฐจ ์ ์์ ์ผ๋ก ์๋ํ์ง ์์.
- TPS ํ๊ณ: ํ๊ท TPS 200์ ๋๋ฌ ์ ์น์๋ฒ๊ฐ ๋ณ๋ชฉํ์์ ์ผ์ผํค๋ฉฐ, ์ ์ฒด ์๋น์ค๊ฐ ์ค๋จ.
๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ , ๋์ ํธ๋ํฝ ์ํฉ์์๋ ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด MSA๋ฅผ ๋์ ํ์ต๋๋ค.
- ๊ฐ ๊ธฐ๋ฅ์ ๋ ๋ฆฝ์ ์ธ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ถ๋ฆฌ.
- ํน์ ์๋น์ค ์ฅ์ ๊ฐ ์ ์ฒด ์์คํ ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ์ค๊ณ ๊ฐ๋ฅ.
- ์ด๊ธฐ์๋ ์๋น์ค ๊ฐ ํต์ ๋ฐฉ์์ผ๋ก ๊ฐ์ฅ ์ต์ํ HTTP๋ฅผ ์ฌ์ฉ.
- ๊ทธ๋ฌ๋ HTTP๋ ๋๊ธฐ ์์ฒญ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋๋ฆฌ์์ ํ๊ณ(์๋น์ค ๊ฐ ๊ฒฐํฉ๋)์ ์ฅ์ ์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํจ.
- ๊ธฐ์กด HTTP ์์ฒญ ๋ฐฉ์์ ๊ฒฐํฉ๋ ๋์๊ณผ ์ฅ์ ์ ํ ์ํ์ ํด๊ฒฐํ๊ธฐ ์ํด Kafka๋ฅผ ๋์ .
- Kafka๋ฅผ ํตํด ๋น๋๊ธฐ ๋ฉ์์ง ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ก ์ ํ.
- ๋น๋๊ธฐ ์ฒ๋ฆฌ
- ๋ฉ์์ง๋ฅผ ํ์ ์ ์ฅํ์ฌ ์๋น์ค ๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ.
- ๋ด๊ฒฐํจ์ฑ
- ๋ฉ์์ง๊ฐ ํ์ ์ ์ฅ๋๋ฏ๋ก ํน์ ์๋น์ค๊ฐ ๋ค์ด๋๋๋ผ๋ ๋ฉ์์ง๊ฐ ์ ์ง๋จ.
- ์๋น์ค ๋ณต๊ตฌ ํ ๋ฉ์์ง ์ฌ์ฒ๋ฆฌ ๊ฐ๋ฅ.
- ๋์ ์ฒ๋ฆฌ๋
- Kafka๋ ๋์ ์ค๋ฃจํ์ ์ง์ํด ๋๋์ ๋ฉ์์ง๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ.
- ํ์ฅ์ฑ
- ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ํตํด ์๋น์ค ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถฐ, ๊ฐ ์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅ ๊ฐ๋ฅ.
- ์๋น์ค ๋
๋ฆฝ์ฑ ๊ฐํ
- ์๋น์ค ๊ฐ ์ง์ ์ ์ธ ์์กด์ฑ์ ์ ๊ฑฐํ๊ณ , ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ํตํ ๊ฐ์ ์ ํต์ ์ผ๋ก ๋ ๋ฆฝ์ฑ ๊ฐํ.
- ์ ์ฐํ ์๋ฌ ์ฒ๋ฆฌ
- ์ฅ์ ๋ฐ์ ์ ๋ฉ์์ง๋ฅผ ํ์ ์ ์ฅํ์ฌ ์ฌ์ฒ๋ฆฌํ๊ฑฐ๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์๋ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ.
- ์ฑ๋ฅ ํฅ์
- ๋น๋๊ธฐ ๋ฉ์์ง ์ฒ๋ฆฌ๋ก ๋ธ๋กํน ์์ด ๋ค์์ ์์ฒญ์ ์ฒ๋ฆฌํด ์ ์ฒด ์์คํ ์ฑ๋ฅ ๊ฐ์ .
Kafka ๊ธฐ๋ฐ ๋น๋๊ธฐ ๋ฉ์์ง ์ฒ๋ฆฌ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฑ๊ณผ๋ฅผ ๋ฌ์ฑํ์ต๋๋ค:
- ์ฑ๋ฅ ๊ฐ์
- ํธ๋ํฝ ํญ์ฃผ ์ํฉ์์๋ ์๋น์ค ๋ง๋น ์์ด ์์ ์ ๋์.
- ์ ๋ขฐ์ฑ ํฅ์
- ์๋น์ค ๋ค์ด ์์๋ ๋ฉ์์ง๊ฐ ํ์ ์ ์ฅ๋์ด ๋ณต๊ตฌ ํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅ.
- ํ์ฅ์ฑ ๊ฐํ
- ๊ฐ ์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ผ๋ง ๊ฐ๋ฅํด ์ ์ฒด ์์คํ ์ ์ฐ์ฑ ์ฆ๊ฐ.
- ๋ฐ์ดํฐ ์ ํฉ์ฑ ์ ์ง
- ๋น๋๊ธฐ ๋ฉ์์ง ์ฒ๋ฆฌ๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ์ ์งํ๋ฉฐ, ๊ณ ํธ๋ํฝ ์ํฉ์์๋ ์์ ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ.
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์์ MSA๋ก์ ์ ํ์ ์ด๊ธฐ์๋ ๋ณต์กํด ๋ณด์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ ํธ๋ํฝ๊ณผ ์ฅ์ ์ํฉ์์ ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ๋๋ค.
Kafka๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ๋ฉ์์ง ์ฒ๋ฆฌ๋:
- ์๋น์ค ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ,
- ์์คํ ์ ๋ขฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํค๋ฉฐ,
- ์์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ์ ํ์ ํตํด ์๋น์ค ๊ฐ ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๊ณ , ๋์ ํธ๋ํฝ ์ํฉ์์๋ ํ์ฅ์ฑ๊ณผ ์์ ์ฑ์ ๊ฒธ๋นํ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ ์ ์์์ต๋๋ค.
- Frontend Developer: ๋ฐ์ค, ๊น์ง์
- Backend Developer: ๋ฐ์ค, ๊น์ง์