main: ๋ฐฐํฌ/๋ฆด๋ฆฌ์ฆ ๊ธฐ์ค ๋ธ๋์นdevelop: ํตํฉ ๊ฐ๋ฐ ๋ธ๋์นfeature/{ticket}-{short-desc}: ๊ธฐ๋ฅ ๊ฐ๋ฐfix/{ticket}-{short-desc}: ๋ฒ๊ทธ ์์ chore/{short-desc}: ์ค์ /๋ฌธ์/๋ฆฌํฉํฐ๋ง
- ํ์:
type: summary - ์์:
feat: ํ์ ๊ฐ์ ๊ธฐ๋ฅ ๊ตฌํ
Types:
feat: ๊ธฐ๋ฅ ์ถ๊ฐfix: ๋ฒ๊ทธ ์์ docs: ๋ฌธ์ ๋ณ๊ฒฝrefactor: ๋ฆฌํฉํฐ๋งtest: ํ ์คํธ ์ถ๊ฐ/์์ chore: ์ค์ /๋น๋/๊ธฐํ
application/ - ์ ํ๋ฆฌ์ผ์ด์
์ง์
์ (API ๊ณ์ธต)
domain/
domain-service/ - ์์์ฑ ์ ๊ทผ ์ง์
์
domain-rdb/ - RDB persistence ๋ชจ๋
domain-redis/ - Redis persistence ๋ชจ๋
clients/ - ์ธ๋ถ API ์ฐ๋
support/ - ๋ก๊น
/๋ชจ๋ํฐ๋ง ๋ฑ ํก๋จ ๊ด์ฌ์ฌ
common/ - ๊ณตํต ์ ํธ/์์/์์ธ
ํ๋ก์ ํธ๋ ํ๊ฒฝ๋ณ๋ก ๋ค๋ฅธ docker-compose ํ์ผ์ ์ฌ์ฉํฉ๋๋ค:
- ๋ก์ปฌ ๊ฐ๋ฐ:
docker-compose.yml- networks ์์ด ํธ์คํธ DB ์ฌ์ฉ - CI/CD DEV:
docker-compose-dev.yml-backend-network์ฌ์ฉ - CI/CD LIVE:
docker-compose-live.yml-backend-network์ฌ์ฉ
-
.envํ์ผ ์์ฑ (ํ๋ก์ ํธ ๋ฃจํธ์)# ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ (ํ์) SPRING_DATASOURCE_URL=jdbc:mysql://host.docker.internal:3306/ndgl_dev?serverTimezone=Asia/Seoul&useSSL=false&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME=your_username SPRING_DATASOURCE_PASSWORD=your_password # JWT ์ค์ (์ ํ์ฌํญ - ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ) JWT_SECRET=your-secret-key-change-this-in-production-minimum-256-bits JWT_EXPIRATION=86400000
-
์ ํ๋ฆฌ์ผ์ด์ ์คํ
docker compose build docker compose up --build
-
์ ํ๋ฆฌ์ผ์ด์ ์ค์ง
docker compose down
CI/CD ์ํฌํ๋ก์ฐ์์ ์๋์ผ๋ก ํ๊ฒฝ์ ๋ง๋ docker-compose ํ์ผ์ ์ฌ์ฉํฉ๋๋ค:
- DEV ํ๊ฒฝ:
develop๋ธ๋์น push ์docker-compose-dev.yml์ฌ์ฉ - LIVE ํ๊ฒฝ:
main๋ธ๋์น์์ ์๋ ๋ฐฐํฌ ์docker-compose-live.yml์ฌ์ฉ
๊ฐ ํ๊ฒฝ์ backend-network ์์ ๋์ปค DB๋ฅผ ์ฌ์ฉํฉ๋๋ค.