์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ AI ๊ฐ๋ฐ์์ LLM ์๋น์ค๋ฅผ ์ํ RAG
Hong
LLM์ ํ๊ณ? ์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ํ์ ์์ ๊ฒช์ RAG ์ํ์ฐฉ์ค์ ์ด์ ๋ ธํ์ฐ๋ก ์ค์ ๋ฌธ์ ํด๊ฒฐ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
์ ๋ฌธ
JavaScript, Python, ์ธ๊ณต์ง๋ฅ(AI)
Spring Boot 3.x + Kotlin์ผ๋ก 3๊ฐ ์ธ์คํด์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๊ณ , Redis Pub/Sub ๋ถ์ฐ ๋ฉ์์ง๊ณผ Nginx ๋ก๋๋ฐธ๋ฐ์๋ฅผ ํ์ฉํ์ฌ ๋์ฉ๋ ํธ๋ํฝ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ํ์ฅ ๊ฐ๋ฅํ WebSocket ์ค์๊ฐ ์ฑํ ์๋ฒ๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
์๊ฐ์ 286๋ช
๋์ด๋ ์ ๋ฌธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ







SK๊ทธ๋ฃน
์์ง์๋ค๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ด์!





SK๊ทธ๋ฃน
์์ง์๋ค๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ด์!
๋จผ์ ๊ฒฝํํ ์๊ฐ์๋ค์ ํ๊ธฐ
5.0
Jlos Ho
์ด ๊ฐ์๋ ์ ๋ง Goat์ ๋๋ค. ๋ค๋ฅธ ๊ฐ์๋ ์๊ฐํ์์ง๋ง ์ด๋ ๊ฒ ํ์ค์ ์ด๊ณ ์์์ ์๋ ค์ฃผ๋๋ฏํ ๊ฐ์๋ ์ด ์ธํ๋ฐ ํ๋ซํผ์์ ์ ์ผํ๊ฑฐ ๊ฐ๋ค์ ๋ง์ ๋์์ด ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
5.0
Hoos
์ด๋ฐ ์ํคํ ์ฒ๋ ์๊ตฌ๋... Kotlin๋ถํฐ ํ๋ซํผ์ ๋ํ ์ํคํ ์ฒ ๋ฐ ์ค์ ์ฝ๋๋ฅผ ํตํด ์ฑํ ํ๋ซํผ์ ๋ํด์ ๋ง์ ๋ถ๋ค์ด ์ดํด๋ฅผ ํ์ค ์ ์๋ ์ข์ ๊ฐ์์ธ๊ฑฐ ๊ฐ์ต๋๋ค.
5.0
๋ฏธ๋ 1์ธ ๊ฐ๋ฐ์
๊ฐ์๋ฅผ ์ดฌ์ํ๋๋ฐ์ ์์ด์ ์๋ฒ ์ํคํ ์ฒ์ ๋์์ ์ฃผ๊ณ ๋ฉ์์ง ์ฒ๋ฆฌ์ ๋ํ ์ค๊ณ๋ฅผ ์งํํ ํ ์ค ์กฐ๊ธ์ฉ ๊ณ ์ฌํ๋ ์๋ฒ ๊ฐ๋ฐ์ ์ ๋๋ค. ์ด๋๊น์ง ๋ฌด์ํ ํ๋กํ ์ฝ์ ํตํ ํต์ ์ ์ฃผ์ ๋ก๋ง ์งํ์ ํด๋ณด์๋๋ฐ, ์ด๋ ๊ฒ ์๋ก์ด ์ฃผ์ ๋ก ๊ฐ์๋ฅผ ์ดฌ์ํ๊ฒ ๋์ด์ ๊ฝค๋ ๊ธฐ์๊ณ ์ฌ๋ฏธ์๋ ์๊ฐ์ด์์ต๋๋ค. ์ง๋ฌธ๋ ์์ ๋กญ๊ฒ ๋จ๊ฒจ์ฃผ์ธ์. ์ ๋ ์๊ฐ์ ๋ด๋ฉฐ ๊ด์ฌ์๊ฒ ๋ณด๊ณ ์๊ณ ์ง๋ฌธ์ ๋ํด์๋ ์ ์ ๊ฒฌํด๋ฅผ ๋จ๊ฒจ๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ณ ์ถ๋ค์. ๊ฐ์ ๋ง์ ๊ด์ฌ ๋ถํ๋๋ฆฝ๋๋ค.
Redis Pub/Sub์ ํ์ฉํ์ฌ ์ฌ๋ฌ ์๋ฒ ์ธ์คํด์ค ๊ฐ ์ค์๊ฐ ๋ฉ์์ง๋ฅผ ๋๊ธฐํํ๋ ๋ถ์ฐ ๋ฉ์์ง ์์คํ
Docker Compose๋ก 3๊ฐ ์ธ์คํด์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ Nginx ๋ก๋๋ฐธ๋ฐ์๋ก ํธ๋ํฝ์ ๋ถ์ฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ
Spring WebSocket์ ์ด์ฉํ์ฌ ์๋ฐฉํฅ ์ค์๊ฐ ํต์ ์ ๊ตฌํ
๋ฉํฐ๋ชจ๋ ๊ตฌ์กฐ๋ก Domain-driven Design์ ์ ์ฉํ์ฌ ํ์ฅ ๊ฐ๋ฅํ ์๋ฒ ์ํคํ ์ฒ๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ
Redis๋ฅผ ํ์ฉํ ๋ฉ์์ง ์ํ์ค ๊ด๋ฆฌ๋ก ๋ถ์ฐ ํ๊ฒฝ์์๋ ๋ฉ์์ง ์์๋ฅผ ๋ณด์ฅํ๋ ๊ธฐ๋ฒ
Docker ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๋ฐฐํฌ์ ํฌ์ค์ฒดํฌ, ๋ก๊ทธ ๋ชจ๋ํฐ๋ง์ ํตํ ์๋น์ค ์ด์ ๋ฐฉ๋ฒ
Spring Boot 3.x + Kotlin์ ์ต์ ๊ธฐ๋ฅ์ ํ์ฉํ ๋ชจ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ
๋ฉ์์ง ์ค๋ณต ์ฒ๋ฆฌ ๋ฐฉ์ง, ์ธ์ ์ ๋ฆฌ, ๋ฆฌ์์ค ํด์ ๋ฑ ์์ ์ ์ธ ์๋น์ค ์ด์์ ์ํ ๋ฐฉ์ด ์ฝ๋ฉ ๊ธฐ๋ฒ
์ค์ ์๋น์ค ํ๊ฒฝ์์ ์๋ง ๋ช ์ ์ฌ์ฉ์๋ฅผ ๊ฐ๋นํ ์ ์๋ ํ์ฅ ๊ฐ๋ฅํ ์๋ฒ ์ํคํ ์ฒ๋ฅผ ์ง์ ์ค๊ณํ๊ณ ๊ตฌ์ถํ๊ฒ ๋ฉ๋๋ค.
๐. ๋จ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ ๋์ด, ๋๊ท๋ชจ ํธ๋ํฝ์๋ ์์ ์ ์ผ๋ก ๋์ํ๋ ๋ถ์ฐ ์์คํ ์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ฒด๋ํ ์ ์์ต๋๋ค.
๋จผ์ , ์ฌ๋ฌ ๋์ ์๋ฒ๊ฐ ํ๋์ ์์คํ ์ฒ๋ผ ๋์ํ๋๋ก Nginx ๋ก๋๋ฐธ๋ฐ์๋ก ํธ๋ํฝ์ ๋ถ์ฐํ๊ณ ๐, Redis Pub/Sub์ ์ด์ฉํด ์๋ฒ ๊ฐ ๋ฉ์์ง๋ฅผ ์ค์๊ฐ์ผ๋ก ๋๊ธฐํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ์ด ๊ณผ์ ์์ C10K (1๋ง ๋์ ์ ์) ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ ธํ์ฐ๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ์ตํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ํ โก๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ์ ํ๋ํ๊ณ , JPA ๋ฐฐ์น ์ฒ๋ฆฌ์ ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ์ ์ ์ฉํ์ฌ ์๋ต ์๋๋ฅผ ๋ฐ๋ฆฌ์ด ๋จ์๊น์ง ๊ฐ์ ํ๋ ๊ฒฝํ์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก, Docker ์ปจํ ์ด๋๐ณ ๋ฅผ ํตํด ๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ๊น์ง ์ผ๊ด๋ ํ๊ฒฝ์ ์ ์งํ๊ณ , Health Check์ ๋ชจ๋ํฐ๋ง ์์คํ ๐ฉบ ์ ๊ตฌ์ถํ์ฌ ์๋น์ค ์ฅ์ ๋ฅผ ์ฌ์ ์ ๋ฐฉ์งํ๋ ์์ ์ ์ธ ์ด์ ๊ธฐ๋ฒ๊น์ง ํ์ตํฉ๋๋ค. ์ด ๋ชจ๋ ๊ณผ์ ์ ์ต์ ์คํ์ธ Kotlin๊ณผ Spring Boot 3.x, websocket๋ฅผ ํ์ฉํ์ฌ ์ธ๋ จ๋๊ณ ํจ์จ์ ์ธ ์ฝ๋๋ก ๊ตฌํํฉ๋๋ค โจ.
๋ช ๋ น์ด๋ก ์ ์ฒด ์์คํ (์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์ ๋ฑ)์ ํ ๋ฒ์ ์คํํ ์ ์๋, ์์ ํ ํํ์ ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค. ๋จ์ํ ์ฝ๋ ์กฐ๊ฐ์ ์งํฉ์ด ์๋, ์ฆ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์๋น์ค์ ๋๋ค.
์ฌ์ฉ์์ ์์ฒญ๋ถํฐ ๋ฐ์ดํฐ ์ ์ฅ๊น์ง ์ ์ฒด ํ๋ฆ์ ๋ด์ ์์คํ ์ํคํ ์ฒ ์ค๊ณ๋๋ฅผ ์ง์ ๊ตฌ์ถํ๊ณ ์ดํดํ๊ฒ ๋ฉ๋๋ค. ์ด ์ค๊ณ๋๋ ์ฌ๋ฌ๋ถ์ ๊ธฐ์ ์ ๊น์ด๋ฅผ ์ฆ๋ช ํ๋ ํ๋ฅญํ ํฌํธํด๋ฆฌ์ค ์์ฐ์ด ๋ฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๊ณ , ์ฑํ ๋ฐฉ์ ๋ง๋ค๊ณ , ๋ค์ํ ๋ฉ์์ง๋ฅผ ์ค์๊ฐ์ผ๋ก ์ฃผ๊ณ ๋ฐ๋ ํต์ฌ ์ฑํ ๊ธฐ๋ฅ์ด ์๋ฒฝํ๊ฒ ๊ตฌํ๋ ๊ฒฐ๊ณผ๋ฌผ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
n๊ฐ์ Spring Boot ์๋ฒ๊ฐ Nginx ๋ก๋๋ฐธ๋ฐ์ ์๋์์ ๋์ํ๋ ์๋ฒ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ์ด๋ฅผ ํตํด ํธ๋ํฝ์ด ์ฆ๊ฐํ ๋ ์๋ฒ ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ง์ผ๋ก ๊ฐ๋จํ๊ฒ ์์คํ ์ ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
ํ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ์๋ก ๋ค๋ฅธ ์๋ฒ์ ์ ์ํด๋ Redis Pub/Sub์ ํตํด ๋ชจ๋ ๋ฉ์์ง๊ฐ ๋๋ฝ ์์ด ์ ๋ฌ๋๋ ์์ ์ ์ธ ๋ฉ์์ง ์์คํ ์ ๊ตฌ์ถํฉ๋๋ค.
PostgreSQL์ ์ฑํ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๊ณ , Redis์ ์ธ์ ์ ๋ณด๋ ์บ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ๋ฐ์ดํฐ์ ์์ ์ฑ๊ณผ ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ๋ชจ๋ ๋ง์กฑ์ํค๋ ํ์ด๋ธ๋ฆฌ๋ ๋ฐ์ดํฐ ์์คํ ์ ์์ฑํฉ๋๋ค.
์ฌ๋ฌ ์๋ฒ ์ธ์คํด์ค ๊ฐ ์ค์๊ฐ ๋ฉ์์ง ๋๊ธฐํ๋ฅผ ์ํด Redis์ ๋ฐํ-๊ตฌ๋ ํจํด์ ๊ตฌํํฉ๋๋ค. ์ค๋ณต ๋ฉ์์ง ๋ฐฉ์ง, ๋ฉ์์ง ์์ ๋ณด์ฅ, ์๋ฒ๋ณ ๊ฒฉ๋ฆฌ ์ฒ๋ฆฌ ๋ฑ ํ๋ก๋์ ๋ ๋ฒจ์ ๋ถ์ฐ ๋ฉ์์ง ์์คํ ์ ๊ตฌ์ถํ์ฌ ํ์ฅ ๊ฐ๋ฅํ ์ค์๊ฐ ํต์ ๊ธฐ๋ฐ์ ๋ง๋ จํฉ๋๋ค.
Spring WebSocket์ ํ์ฉํ์ฌ HTTP๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ธ ์๋ฐฉํฅ ์ค์๊ฐ ํต์ ์ ๊ตฌํํฉ๋๋ค. ์ธ์ ๊ด๋ฆฌ, ์ฐ๊ฒฐ ์ํ ์ถ์ , ์๋ฌ ํธ๋ค๋ง ๋ฑ์ ํตํด ์์ ์ ์ธ ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ ํด๊ฒฐ์ ์ํ ์ต์ ํ ๊ธฐ๋ฒ๋ ์ ์ฉํฉ๋๋ค.
Domain-driven Design ์์น์ ๋ฐ๋ผ API, Domain, Persistence, WebSocket ๊ณ์ธต์ ๋ ๋ฆฝ์ ์ธ ๋ชจ๋๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๊ฐ ๋ชจ๋์ ์ฑ ์์ ๋ช ํํ ๊ตฌ๋ถํ๊ณ ์์กด์ฑ ๋ฐฉํฅ์ ์ ์ดํ์ฌ ์ ์ง๋ณด์์ฑ๊ณผ ํ ์คํธ ์ฉ์ด์ฑ์ ๊ทน๋ํํ ํ์ฅ ๊ฐ๋ฅํ ์๋ฒ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
n๊ฐ์ Spring Boot ์ธ์คํด์ค์ ํธ๋ํฝ์ ๊ท ๋ฑ ๋ถ์ฐํ๋ Nginx ๋ก๋๋ฐธ๋ฐ์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. HTTP ์์ฒญ๋ฟ๋ง ์๋๋ผ WebSocket ์ฐ๊ฒฐ๋ ์์ ์ ์ผ๋ก ํ๋ก์ํ๋ฉฐ, ํ๋ก๋์ ๋ ๋ฒจ์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ค์ ์ผ๋ก ๊ณ ๊ฐ์ฉ์ฑ ์๋น์ค ํ๊ฒฝ์ ๊ตฌ์ถํฉ๋๋ค.




Spring๊ณผ 100% ํผ์ฉ์ด ๋๋ค๊ณ ๋งํ๋ฉฐ, Jetbrain์์ ๋ง๋ Kotlin์ด๋ผ๋ ์ธ์ด๋ Spring์์ ์ ํฉํ์ง ์์ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ต์ ํ๋์ด ์์ต๋๋ค.
Kotlin์ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ๋ฌธ๋ฒ์ ์ ๊ณตํ๋ ํํ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ๋ ์ ์ ์ฝ๋๋ก ๋ ๋ง์ ์์
์ ์ํ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋
์ฑ ํฅ์์ ํจ๊ณผ๊ฐ ์์ผ๋ฉฐ ์์ง๋ณด์๊ฐ ๋ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.Kotlin์ ๋ ์์ ์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ์ฌ ๋ ํฌ์ธํฐ ์์ธ(NullPointerException)๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋ํ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ์ฌ ๋ณด๋ค ๊ธฐ๋ฅ์ ์ด๊ณ ์ ์ธ์ ์ธ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ๊ฐ๋ฐ ์์ฐ์ฑ์ ๋์ด๊ณ , ๋ฒ๊ทธ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ค์ฌ์ค๋๋ค.Kotlin์ 100% ์๋ฐ์ ํธํ๋๋ฏ๋ก ๊ธฐ์กด ์๋ฐ ํ๋ก์ ํธ์ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค. ์ด๋ ์๋ฐ ๊ฐ๋ฐ์๋ค์ด Kotlin์ ๋ฐฐ์ฐ๋๋ฐ ํฐ ์ฅ๋ฒฝ์ด ์์ผ๋ฉฐ, ๊ธฐ์กด ์ฝ๋๋ฅผ ์ ์งํ๋ฉด์๋ ์๋ก์ด Kotlin ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.๐ ๊ฐ๋ฅํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ๊ฐ๋ฐ ๋ฐฉ์์ ์๋๋๋ค.
๐ ํ์ง๋ง ์๋ฒ ๊ฐ๋ฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ์ ๋ํ ๋ฆฌ์์ค๋ฅผ ์ต๋ํ ์ ๊ฐ์ ํ์ฌ ๊ฐ์ ธ๊ฐ์ผ ํฉ๋๋ค.
๐ ๊ทธ๋ฌ๊ธฐ ๋๋ฌธ์, ์ฑํ ์๋ฒ์ ๊ฐ์ด ์ง์์ ์ธ Connection์ด ์ ์ง๋์ด์ผ ํ๋ ํต์ ๊ฐ์ ๊ฒฝ์ฐ์๋ WebSocket์ ์ฌ์ฉํ๋๊ฒ์ด ๋งค์ฐ ์ ํฉํฉ๋๋ค.
์ ๋ฌธ์ฑ์ด ๋จ์ด์ง๋ ๋ชจ์ต์ผ๋ก ์ฌ๊ฒจ์ง์ง๋ผ๋ ๋ณด์ฌ์ฃผ๊ธฐ ํธํ ๊ฐ์๋ ๊ฐ์๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ฒ๊น ๋ ์งํํ๋ ์๊ฐ๋ํ ๊ฐ์์ ์ผ๋ถ ์ ๋๋ค.
๊ฐ๋ฐ์ ๋ง๋กํ๋๊ฒ์ด ์๋๋๋ค. ์ค์ ๊ตฌํ์ ํด๋ณด๊ณ ๋์ํ๋ ๊ณผ์ ์ ํจ๊ป ํ์ค ์ ์์ต๋๋ค.
๊ธฐํ์๋ถ๋ค... ์ด๋ ค์ฃผ์ธ์..
์ ๊ฐ ์ค๋ฌด์์ ์ ์ฉํด์ ํจ๊ณผ๋ฅผ ๋ณด์๋ ๊ฐ๋ ๋ค์ ๋ น์ด๊ณ ์ ํ์์ต๋๋ค. ์ด ๊ณผ์ ์ ํตํด์ ์ค๋ฌด๋ฅผ ๊ฐ์ ์ ์ผ๋ก ์ฒดํํ์๊ฑฐ๋ ์ค๋ฌด์๋ผ๋ฉด ์ค๋ฌด ํ๊ฒฝ์ ๋ ๋ฐ์ด๋ ํผํฌ๋จผ์ค๋ฅผ ๋ณด์ฌ์ฃผ์ค ์ ์์ต๋๋ค.
๊ฐ์๋ฅผ ์งํํ์๋ฉด์ ์ง์์๋ต์ ๋ง์ด ๋จ๊ฒจ์ฃผ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด ๊ฐ์๋ ์ ํผ์๋ง์ ์ง์์ ํตํด์ ๋ง๋ค์ด์ง์ง ์์์ต๋๋ค. ๋ค์ํ ๋๊ธฐ์ ๊ฐ๋ฐ์๋ถ๋ค์ ์๊ฒฌ๋ํ ์ทจํฉ๋์ด ์์ต๋๋ค.
๊ฐ์ ์์ฑ์ ๋์์ ์ฃผ์ ๋ถ๋ค์ ๋ํ ๊ฐ๋จํ ์ด๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
private val supported_one = "์นด์นด์คํ์ด ํ๋ซํผ ๋ฐฑ์๋ ๊ฐ๋ฐ์"
private val supported_two = "ํ ์ค์ฆ๊ถ API ์๋ฒ ๊ฐ๋ฐ์"
private val supported_three = "๋น๋ฐ๋ก ํด๋ฌ๋ผ๋ ์ ๋์ฝ ์คํํธ์
์๋ฒ ๊ฐ๋ฐ์"Macos M3๋ฅผ ์ฌ์ฉํ์ฌ ์ดฌ์๋์์ต๋๋ค.
Docker๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
java --version : 17.0.12 2024-07-16 LTS
JetBrain ๊ณ์ด์ IDE๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Gradle์ ์ฌ์ฉํ์ฌ ๋น๋ ํฉ๋๋ค.
์์ค์ฝ๋๋ ํน์ ๋ชจ๋ฅด๋ ๋ฒ์ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋น๋ ํ์ผ๊น์ง ์ ๋ถ ํฌํจ๋์ด ์์ต๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
์ฃผ๋์ดโ๋ฏธ๋๋ ๋ฒจ ์ฑ์ฅ์ ์ํ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์
์ค์๊ฐ ์๋น์ค ๊ฐ๋ฐ ๊ฒฝํ์ ์๊ณ ์ถ์ ๊ฐ๋ฐ์
๋ถ์ฐ ์์คํ ์ํคํ ์ฒ์ ๊ด์ฌ์๋ ๊ฐ๋ฐ์
์๋์ด ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ๊ณ ์ถ์ ๋ฏธ๋๋ ๋ฒจ ๊ฐ๋ฐ์
Docker ๊ธฐ์ด ์ง์์ด ์๋ ๊ฐ๋ฐ์ ๋๋ ๋ฐฐ์ฐ๊ณ ์ถ์ ๊ฐ๋ฐ์
๊ฒ์/์ฑํ /์์ ์๋น์ค ๊ฐ๋ฐ์
ํฌํธํด๋ฆฌ์ค๋ฅผ ๊ฐํํ๊ณ ์ถ์ ์ทจ์ ์ค๋น์
๊ธฐ์ ์คํ ํ์ฅ์ ํตํ ์ด์ง์ ๊ณํ์ค์ธ ๊ฐ๋ฐ์
์ ์ ์ง์,
ํ์ํ ๊น์?
Spring์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ง์์ด ์์ผ๋ฉด ์ข์ต๋๋ค.
์น ์์ผ ํต์ ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ง์์ด ์์ผ๋ฉด ์ข์ต๋๋ค.
์ด ๋ชจ๋ ์ง์์ด ์์ด๋ ๋ฉ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ง์ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ํ์ต ๊ฐ๋ฅํฉ๋๋ค.
์ธํ๋ฐ์ธ์ฆ
์ปค๋ฆฌ์ด์ธ์ฆ
9,243
๋ช
์๊ฐ์
590
๊ฐ
์๊ฐํ
165
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
31
๊ฐ
๊ฐ์
์ง์์ ๋น๋ฅ๋๋ค ๊ฐ๋ฐ์ ํฅ๋ฏธ๋ฅผ ๋๊ปด ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์์ํ์๊ณ ํ์ฌ๋ ํ๊ต์์ ํ๋ซํผ ์๋ฒ ๊ฐ๋ฐ์ ๋ด๋นํ์ฌ ์งํํ๊ณ ์์ต๋๋ค. ์ ๊ฐ ๊ณต๋ถ๋ฅผ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ค๋ฌด์์ ์ ํ์ค ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฌธ์ ์ ๋ค๊ณผ ํด๊ฒฐ์ฑ ์ ์ฌ๋ฌ๋ถ๋ค์๊ฒ ์ ๊ณตํ๊ณ ์ถ์ด ์ง์๊ณต์ ์ ํ๋์ ์ด์ด๋๊ฐ๊ณ ์์ต๋๋ค.
๊ฐ์๋ ์ค๋ก์ง ์ ๋ง์ ์ง์์ ํตํด ๋ง๋ค์ด์ง์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฐ์๋ ํจ๊ปํ์๋ ๋ถ๋ค์ด ๊ณ์ญ๋๋ค.
์นด์นด์ค์์ ์๋ฒ ๊ฐ๋ฐํ๋ฉฐ ๋ฉด์ ๊ด์ผ๋ก ํ๋ํ๊ณ ๊ณ์๋ Choi
ํ ์ค์์ ๊ฐ๋ฐํ๊ณ ๊ณ์๋ ์๋ฒ ๊ฐ๋ฐ์
์ ์ธ๊ณ ๊ทธ๋ฃน์ ๊ฑฐ์ณ ๋ค์ด๋ฒ์์ ๊ฐ๋ฐํ์๋ Ande
ํ ์ค ๊ฐ๋ฐ์๋ถ์ ์ถ์ฒ์ผ๋ก ํฉ๋ฅํ์ ์ค๋ฆฌ์ฝ ๋ฐธ๋ฆฌ ๊ฐ๋ฐ์ Waddy
[์ง์๊ณต์ ์ ๊ฒฝ๋ ฅ]
[ๅ] ์๋๋ฐ์คIP ๊ด๋ จ ๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ์
[ๅ] ๋ฉํ๋ฒ์ค ๋ฐฑ์๋ ๊ฐ๋ฐ์
[็พ] ํ๊ต์์ ๊ณ ์ฌ๊ฐ๋ ์๋ฒ ๊ฐ๋ฐ์
[์ธํฐ๋ทฐ ์ด๋ ฅ]
[๊ธฐํ ๋ฌธ์]
[๊ณต์ ์ฌ์ดํธ]
์ ์ฒด
28๊ฐ โ (4์๊ฐ 55๋ถ)
ํด๋น ๊ฐ์์์ ์ ๊ณต:
์ ์ฒด
30๊ฐ
4.9
30๊ฐ์ ์๊ฐํ
์๊ฐํ 10
โ
ํ๊ท ํ์ 5.0
์์ ๋จ
5
์ทจ์ ์ ์ค๋นํ๊ณ , ์ค๋ฌด์์ ์ผ์ ํ๋ฉด์ ๊ฐ์ฌ๋ถ ๊ฐ์๋ฅผ ๋ง์ด ์ฐธ๊ณ ํ๊ณ ํ ๋๋ก ํ์ต์ ์งํํ์๋๋ฐ, ์ ๋ง ๋๋ฌด ๋ง์ ๋์์ด ๋๋ ์์ง์ ์ฃผ์ ์ธ๊ฑฐ ๊ฐ์ต๋๋ค. ํจ๊ป ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ณผ์ ๋ ๋๋ฌด ์ ์ตํ๊ณ ์์์ ๊ฐ์ด ์ฝ๋ฉ์ ํ๋ ๋๋์ด ๋ค๋ค๋ณด๋ ๊ทธ๋งํผ ๋ ํ์ต ํจ๊ณผ๊ฐ ์ข์์ง๋๊ฑฐ ๊ฐ์์!! ์์ผ๋ก ๋ ์์ฃผ๋ณด๊ณ ์ข์ ๊ฐ์๊ฐ ๋ง๋ค์ด์ง๋ฉด ์ข๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
์๋ ํ์ธ์ ํ ๋ฒ๊ฑฐ๋! ์ทจ์ ์ ์ค๋นํ์๋ค๋!! ์ด ๊ฐ์๊ฐ ๋ง์ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค ์ถํ์ ์ทจ์ ๋ ์ฑ๊ณตํ์ ๋ค๋ฉด ์์ ์ ํด์ฃผ์ธ์ ใ ใ ๊ฐ์ฌํฉ๋๋ค!
์๊ฐํ 3
โ
ํ๊ท ํ์ 5.0
5
๊ฐ์ ์ ๋ณด์์ต๋๋ค. ๋ฑํ ๋ณด๋๋ฐ์ ํฐ ๋ถํธํจ๋ ์์๊ณ ๋ด์ฉ ์์ฒด๋ ๋๋ฌด ์ ์ตํ๋ค์ ์์ผ๋ก ์ข์ ๊ฐ์ ๋ถํ๋๋ฆฝ๋๋ค!
์๋ ํ์ธ์ ์ฐ๋นํํ๋ ์ข์ ํ ๋จ๊ฒจ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!! ์์ผ๋ก ๋ ์ ์ตํ๊ณ ์ฌ๋ฏธ์๋ ์ค๋ฌด์ ์ ํฉํ ๊ฐ์๋ฅผ ์ ๊ณตํด ๋๋ฆฌ๊ธฐ ์ํด์ ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค! ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์!
์๊ฐํ 6
โ
ํ๊ท ํ์ 5.0
5
๋๋ฌด ์ ๋ฐฐ์ ์ต๋๋ค. ์ข์ ๊ฐ์๋ผ๊ณ ์๊ฐํ๋ค์. ๋ค๋ฅธ ๊ฐ์๋ ์๊ฐ ์์ ์ ๋๋ค.
์๋ ํ์ธ์ 8๋ฒ์ด ์ข์๋!! ๋ค๋ฅธ๊ฐ์์์๋ ๋ต์ผ๋ฉด ์ข๊ฒ ๋ค์ ใ ใ ์ข์ ํ ๊ฐ์ฌํฉ๋๋ค!
์๊ฐํ 8
โ
ํ๊ท ํ์ 5.0
5
ํ์ค์ ์ธ ์ข์ ๋ด์ฉ์ผ๋ก ๊ฐ์ ์ ๋ดค์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์ ks ju๋ ํ ๋จ๊ฒจ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ค์ ์ด์ํ๊ฒ ์์๋ ๋ ๋ค์ํ ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ์ ์๋ ํํ๊ณ ์ด๋ฐํํ๋ฅผ ์ํ ๊ตฌ์กฐ๋ผ๊ณ ๋ด์ฃผ์๋ฉด ๋ ๊บผ๊ฐ์์ ใ ใ ์์ผ๋ก ๋ ์ ์ตํ ๊ฐ์๋ฅผ ์ ๊ณตํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์ :)
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!