์ฑ ์ ๋ชฉ๋ง ๋ณด๊ณ ์ฒ์์๋ ์คํ๋ง๋ถํธ๋ฅผ ์ด๋ฏธ ์ ์๋ ๊ฐ๋ฐ์๋ค์ ์ํ ์ค๋ฌด/์ฌํ์๋ผ๊ณ ์๊ฐํ๋ค. "์จ๋ณด๋ฉ ๊ฐ์ด๋"๋ผ๋๊ฒ ํ์ฌ์์ ์ค๋ฌด์ ํฌ์ ๋๋ ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ํ๋ค๋ ๋๋์ ์คฌ์.
ํ์ง๋ง ์ฑ ์ ์ฝ์ด๋ณด๋, ์คํ๋ง๋ถํธ๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ฆฌํ๋ฉฐ ํ๋์ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅด๋ฅด ์์ฑํด๋๊ฐ๋ ๊ณผ์ ์ ๊ฐ๊น์ ๋ค, ์คํ๋ง๋ถํธ๋ฅผ ์ด๋ฏธ ๋ค ์๋ ์ํ๋ฅผ ์ ์ ๋ก ํ๊ธฐ๋ณด๋ค๋, ํ ๋ฒ์ฏค ๋ฐฐ์๋ ๋ดค์ง๋ง ์์ง ์์ ์ต์ง ์์ ์ฌ๋๋ค์ ์ํ ์ฑ ์ด๋ผ๋ ๋๋์ด ๊ฐํ๊ณ , ๊ทธ๋ผ์๋ ์ค๋ฌด์ ์ธ ํฌ์ธํธ๋ก ๊ฐ๋ ์ฐจ์ ์ฌ๋ฏธ์๋ ์ฑ ์ด์์
๋๋ ๋ฆฌ๋ทฐ์ด๋ค ํ๋์ ์ํด ํ๋น๋ฏธ๋์ด์์ ์ฑ ์ ์ ๊ณต๋ฐ์ ์์ฑํ ๋ฆฌ๋ทฐ์ ๋๋ค.
๊ฐ์
์คํ๋ง๋ถํธ ๊ฐ๋ ์ ๊น๊ฒ ํ๊ณ ๋๋ ์ด๋ก ์๋ผ๊ธฐ๋ณด๋จ, ์ค์ ์๋น์ค๋ฅผ ๋ง๋๋ ํ๋ฆ ์์์, ์คํ๋ง๋ถํธ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์กฐ๊ธ ์ค๋ฌด์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ ์ง ๋ณด์ฌ์ฃผ๋ ์ค์ต ์ค์ฌ์ ์ฑ ์ ๋๋ค.
๋ชฉ์ฐจ
Part1. ์คํ๋ง๋ถํธ ์จ๋ณด๋ฉ ๊ฐ์ด๋๋ถ ์๋ด
01. ์จ๋ณด๋ฉ ๊ฐ์ด๋์ ๋ชฉ์ ๊ณผ ํ์ฉ๋ฒ
02. ์คํ๋ง๋ถํธ๋ ๋ฌด์์ธ๊ฐ์?
Part2. ์คํ๋ง๋ถํธ ๊ธฐ๋ฅ ์ค์ต
03. ์ธ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ To-Do ๋ฆฌ์คํธ REST API ์๋ฒ ๋ง๋ค๊ธฐ
04. JPA ๊ธฐ๋ฐ์ To-Do ๋ฆฌ์คํธ REST API ์๋ฒ ๊ฐ๋ฐ
05. ๊ณ ๊ธ JPA ๊ธฐ๋ฐ์ ๋ง์ดํฌ๋ก๋ธ๋ก๊ทธ REST API ์๋ฒ ๊ฐ๋ฐ
06. Minilog์ ์ธ์ฆ ๊ธฐ๋ฅ ์ถ๊ฐํ๊ธฐ
07. GraphQL ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก๋ธ๋ก๊ทธ API ์๋ฒ ๊ฐ๋ฐ
08. ๋์ปค๋ฅผ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง ๋ฐ ๋ฐฐํฌ
์คํ๋ง๋ถํธ ๊ธฐ๋ณธ ์ค์ , API ๊ตฌํ, ์ธ์ฆ/๋ณด์, ๋ก๊น
๊ณผ ํฌ์ค์ฒดํฌ, ํ
์คํธ, ํจํค์ง๊ณผ ๋ฐฐํฌ, ์ด์๊น์ง ํ๋์ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ , ๋ฐฐํฌํ๊ณ , ์ด์ํ๋ ์ ๊ณผ์ ์ ๋จ๊ณ์ ์ผ๋ก ๊ฒฝํํ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
400์ชฝ์ด ์ฑ ๋์ง ์๋ ์์ ์ฑ
์ด์ง๋ง, ์ค๊ณ๋ถํฐ ๊ตฌํ, ๋ฐฐํฌ, ์ด์๊น์ง ๊ฐ๋ฐ ์ฌ์ดํด์ ์ ๋ถ ์ฒดํํด๋ณผ ์ ์์ต๋๋ค.
์ ๋ฌธ์๊ฐ์ง๋ง, ์ค๋ฌด์ ์ธ
์ ์ฒด์ ์ธ ํ๋ฆ์ ์ ๋ฌธ์์ ๋น์ทํฉ๋๋ค. ๋ค๋ง ์ฌํ ์คํ๋ง๋ถํธ ์ ๋ฌธ์๋ค๊ณผ ๋ค๋ฅธ ์ ์, "๊ฐ๋ ์ค๋ช "๋ณด๋ค๋ "์ค์ ๋ก ์ด๋ ๊ฒ ์ด๋ค"์ ์ด์ ์ ๋ง์ถฐ์ ธ ์๋ค๋ ์ ์ ๋๋ค.
์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋ค์ ๋ค๋ฃน๋๋ค.
- ํฌ์ค์ฒดํฌ
- ๋ก๊น
- ์ํ๋ฆฌํฐ ๊ธฐ๋ฐ ์ธ์ฆ
- RESTful API ๊ตฌ์ฒ
- QraphQL
- IoC/DI
- Auto Configuration
๋ฑ๋ฑ, ๊ฐ ๊ฐ๋ ์ ๋ง๋ง ๊น๊ฒ ํ๊ณ ๋ค์ง๋ ์์ง๋ง ์ค์ ํ๋ก์ ํธ ์์์ ์ด๋ค ๋งฅ๋ฝ์์ ํ์ํ๊ณ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง๋ฅผ ์ฝ๋๋ก ๋ณด์ฌ์ค๋๋ค. ์ฑ ์๋ก ์์๋ ์ธ๊ธํ์ง๋ง, ์ด ์ฑ ์ ์ด๋ก ์ ์ฒ์๋ถํฐ ๋๊น์ง ์ค๋ช ํ๋ ์ฑ ์ด๋ผ๊ธฐ๋ณด๋ค๋ ์คํ๋ง๋ถํธ ํ์ฉ ๊ฐ๊ฐ์ ํค์ฐ๋ ๋ฐ ๋ชฉ์ ์ ๋ ์ฑ ์ด๋ผ๊ณ ๋๊ปด์ก์ต๋๋ค.
์ธ๋ฉ๋ชจ๋ฆฌ API๋ก ์์ํด MySQL ์ฐ๋์ผ๋ก ํ์ฅํด ๋๊ฐ๋ ๊ณผ์ , ์ ์ ๋ณต์กํด์ง๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ค๋ฃจ๋ ํ๋ฆ์ด ์ธ์์ ์ด์์ต๋๋ค. ์ํฐํฐ์ DTO, DDD ๋ฑ ๊ฐ๋ ๋ค์ ์ค์ ์ฝ๋ ๊ตฌ์กฐ ์์์ ์ดํดํด๋ณผ ์ ์์๋ ์ ๋ ์ข์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ผ ์ธ์์ ์ด์๋ ์ !
RESTAPI๋ฟ ์๋๋ผ GraphQL๊น์ง ๋ค๋ฃฌ๋ค๋ ์ ์ ๋๋ค. RESTAPI๋ฅผ ์ค์ตํ ํ, GraphQL๋ฅผ ์ค์ตํด๋ณด๋ฉฐ REST API์์ ์ฐจ์ด๋ฅผ ๋น๊ตํ ์ ์์์ต๋๋ค.
๋์ปค๋ก ์์ํ๋ ์จ๋ณด๋ฉ ๊ฐ์ด๋
์ฑ ์ด๋ฐ๋ถํฐ ๋์ปค ํ๊ฒฝ ์ค์ ์ ๋ค๋ฃจ๊ณ ์์ํฉ๋๋ค. WSL ๋ฑ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋๋ ๊ณผ์ ์ ๋น๊ต์ ์์ธํ ์๋ดํ์ฌ ๋ฐ๋ผํ๊ธฐ๋ง ํ๋ฉด ํ๊ฒฝ ๊ตฌ์ถํจ์ ์ด๋ ค์์ ์์ง๋ง, ์ปจํ ์ด๋ ๊ฐ๋ , ๋ฆฌ๋ ์ค ์ค์ , ์ด๋ฏธ์ง ๋น๋์ ์คํ ๋ฑ๋ฑ ์์ ์ฒ์ ๊ฐ๋ฐ์ ์์ํ๋ ๋ถ๋ค์๊ฒ๋ ๋ค์ ๋์ด๋๊ฐ ๋๊ปด์ง ์ ์๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์์ต๋๋ค. ๋ฐ๋๋ก ๋งํ๋ฉด, "๊ฐ๋ฐ์ ํด๋ดค๋๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ์ด๋ ๋ฐฐํฌ ์ชฝ์ด ๋ง์ฐํ๋ค"๋ ๋ถ๋ค๊ป๋ ๊ต์ฅํ ๋์์ด ๋ ๊ตฌ์ฑ์ ๋๋ค.
ํ ์คํธ์ ๋ฐฐํฌ, ์ด์
ํ
์คํธ ํํธ์์๋ TestContainer๋ฅผ ํ์ฉํ ํ
์คํธ๋ฅผ ๋ค๋ฃน๋๋ค. ๋ก์ปฌ ํ๊ฒฝ์์๋ง ํ
์คํธํ๋ ๊ฒ์ด ์๋๋ผ, ์ค์ ์ปจํ
์ด๋ ํ๊ฒฝ๊ณผ ์ ์ฌํ ์กฐ๊ฑด์์ ํ
์คํธ๋ฅผ ๊ตฌ์ฑํ๋ ํ๋ฆ์ ๊ฒฝํํ ์ ์์์ต๋๋ค. ํ
์คํธ๊ฐ ๋จ์ํ "ํต๊ณผ/์คํจ"๋ฅผ ํ์ธํ๋ ๋จ๊ณ๊ฐ ์๋๋ผ ๋ฐฐํฌ์ ์ด์์ ์ผ๋์ ๋ ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ๋ฐฐ์ธ ์ ์๊ณ , ํ
์คํธ์ ๋ํ ๊ด์ ๊ณผ ๊ฒฝํ์ ํ ๋จ๊ณ ํ์ฅํ ์ ์์์ต๋๋ค.
๋ฐฐํฌ๋ฅผ ๋ค๋ฃฐ ๋๋ AWS ECR, ECS ๋ฑ์ ์ง์ ๋ค๋ฃน๋๋ค. ๋ฐฑ์๋ ๋ฐฐํฌ๋ ๊ฒฝํ์ด ๋ง์ด ์๋๋ฐ, ์ด ์ฑ ์ ํตํด ๋ฐฐํฌ ๊ณผ์ ์ด ์ด๋ค ํ๋ฆ์ผ๋ก ์ด๋ฃจ์ด์ง๋์ง๋ฅผ ํ ๋ฒ์ ๊ฒฝํํ ์ ์์์ต๋๋ค. ํนํ ์ข์๋ ์ ์ ๋ฐฐํฌํ๊ณ ๋์ด ์๋๋ผ, ์ด์ ๊ด์ ๊น์ง ์ด์ด์ง๋ค๋ ์ ์ ๋๋ค. ํฌ์ค ์ฒดํฌ, ๋ก๊ทธ ํ์ธ ๋ฑ์ ํตํด ์๋น์ค๊ฐ ์ค์ ๋ก ๋์๊ฐ๊ณ ์๋ ์ํ๋ฅผ ํ์ธํ๋ ๊ณผ์ ๊น์ง ํฌํจ๋์ด ์์ด, ์ด์์ ์ฒ์ ์ ํ๋ ์ ์ฅ์์ ํฐ ๋์์ด ๋์์ต๋๋ค. ๋ฐฐํฌ์ ๋ํ ์ด๋ ค์, ํ๋ค์ ์๋นํ ๋ฎ์ถฐ์ค ์ ์๋ ๊ตฌ์ฑ์ด์์ต๋๋ค.
๋์ ์ฝ๋(์ค์ต) ๋น์ค
์ด ์ฑ ์ ์ฝ๋ ๋น์ค์ด ์๋นํ ๋์ต๋๋ค. ๋ ํ์ด์ง, ์ธ ํ์ด์ง์ ๊ฑธ์ณ ์ด์ด์ง๋ ์ฝ๋๋ ์์ฃผ ๋ฑ์ฅํฉ๋๋ค. ํ์ง๋ง ํ๋์ ์๋น์ค๋ฅผ ์ ์ง์ ์ผ๋ก ๊ฐ์ ํด ๋๊ฐ๋ ํ๋ฆ ์์์ ์ฝ๋๊ฐ ์ ๊ฐ๋์ด, ๊ฐ์๊ธฐ ๋ณต์กํ ์ฝ๋๊ฐ ํญ ํ์ด๋์ค๋ ๋๋์ ์ ์์ต๋๋ค. ํ์ด๋ผ์ดํธ ํ์์ ๋จ๊ณ๋ณ ์ค๋ช ๋๋ถ์ "์ง๊ธ ์ด ์ฝ๋๊ฐ ์ ์ถ๊ฐ๋์๋์ง"๋ฅผ ์ดํดํ๋ฉฐ ์ฝ์ ์ ์์์ต๋๋ค.
์ฝ๋ ๋น์ค์ด ๋์ง๋ง ์คํ๋ ค ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋์ง ๋จ๊ณ๋ณ๋ก ๋ฐ๋ผ๊ฐ๋ฉด์ ์์ฑ ๋ฐฉ๋ฒ, ์คํ์ผ์ ์ตํ ์ ์์๊ณ , ์ค์ต ํ๋ฆ์ ์ดํดํ๋๋ฐ๋ ๋์์ด ๋์ด ์ ๋ ์ข์ ๊ตฌ์ฑ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ณผ์ ์๊ฐ
๊ฐ ์ฑํฐ ์์ ์ ์ "๊ณผ์ ์๊ฐ" ์น์ ์ด ์์ต๋๋ค.
- ์์ ์์ ์๊ฐ
- ๋ชฉํ
- ๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ
- ๊ตฌํ ์๊ตฌ ์ฌํญ
์ด ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ๋์ด ์์ด, ์ด ์ฑํฐ์์ ๋ฌด์์ ๋ง๋ค๊ณ ์ด๋ค ๊ธฐ์ ์ ์ตํ๋์ง ๋ฏธ๋ฆฌ ํ์ ํ ์ ์์์ต๋๋ค. ์ค์ต ์์ฃผ์ ์ฑ ์์ ์์ผ๋ก ๋ญ ๋ฐฐ์ธ ์ ์๋์ง ๋ฐฉํฅ์ ์ก์์ฃผ๋ ์ข์ ์ฅ์น๋ผ๊ณ ๋๊ผ์ต๋๋ค. ์์ ์์ ์๊ฐ์ด ์์ด์ ํ์ต ํ๋์ ์ง๋๋ฐ๋ ๋ง์ ๋์์ด ๋์ง ์์๊น ์ถ๊ธฐ๋ ํ๊ตฌ์ฉ
์ถ์ฒ๋์
์คํ๋ง๋ถํธ๋ฅผ ์ฒ์ ์ ํ๋ ์์ ์ด๋ณด๋ฅผ ์ํ ์ฑ ์ด๋ผ๊ธฐ๋ณด๋ค๋
- ์คํ๋ง๋ถํธ ์ ๋ฌธ์ ํ ๋ฒ์ฏค ์ฝ์ด๋ดค๊ณ
- ๊ฐ๋ ์ ์ผํ ์๋๋ฐ
- ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ํ์ฉํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ๋ ๋ถ๋ค
๊ป ํนํ ์ ๋ง๋ ์ฑ ์ด๋ผ๊ณ ๋๋๋๋ค.
์คํ๋ง๋ถํธ๋ฅผ ๋ค์ ์ ๋ฆฌํ๊ณ , ๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ, ์ด์๊น์ง ํ ๋ฒ์ ๊ฒฝํํด๋ณด๊ณ ์ถ์ ๋ถ๋ค๊ป ์๋ฏธ์๋ ์จ๋ณด๋ฉ ๊ฐ์ด๋๊ฐ ๋์ด์ค ์ฑ ์ ๋๋ค.
'๐review > ์ฑ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ฑ ๋ฆฌ๋ทฐ] ๊ธฐํ์์ ์ถ์๊น์ง FastAPI ๊ฐ๋ฐ ๋ฐฑ์ (0) | 2026.01.12 |
|---|---|
| [์ฑ ๋ฆฌ๋ทฐ] Do it! ๋ฆฌ๋ ์ค ์ ๋ฌธ (0) | 2025.12.26 |
| [์ฑ ๋ฆฌ๋ทฐ] ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ๋ฅผ ์ํ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ (0) | 2025.12.13 |
| [์ฑ ๋ฆฌ๋ทฐ] ๊ทธ๋ฆผ์ผ๋ก ๋ฐฐ์ฐ๋ StatQuest ์ ๊ฒฝ๋ง & AI ๊ฐ์ (0) | 2025.12.07 |
| [์ฑ ๋ฆฌ๋ทฐ] Beyond Vibe Coding ๋ฐ์ด๋ธ ์ฝ๋ฉ ๋๋จธ ๊ฐ๋ฐ์ ์์กด๋ฒ (0) | 2025.11.30 |