๋ ์ผ๋ก(Raillo)๋ KTX ์น์ฐจ๊ถ ์๋งค ์๋น์ค์ ๋ฐฑ์๋๋ค. ์ด ํ์ผ์ AI๊ฐ ์ ์ฅ์์์ ์์
ํ ๋ ์ฒ์ ์ฝ๋ ์ง๋๋ค. CLAUDE.md๋ ์ด ํ์ผ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ค.
์์ ํ ๋๋ฉ์ธ์ ๋ฌธ์๋ฅผ ๋จผ์ ์ฝ๋๋ค. ๋ฌธ์๋ ๋๋ฉ์ธ ์ค๋ช , ์ฉ์ด, ๋ชจ๋ธ(์์ฑ, ํ์, ๊ท์น), ์ค๊ณ ๊ฒฐ์ ์ผ๋ก ๋์ด ์๋ค.
| ๋ฌธ์ | ๋ค๋ฃจ๋ ๊ฒ |
|---|---|
| docs/train | ์ด์ฐจ, ๊ฐ์ฐจ, ์ข์, ์ดํ, ์ ์ฐจ์ญ, ์ด์, ๊ฒ์, ์ด์ฐจ ์บ์ |
| docs/reservation | ์์ฝ(Redis), ์ข์ ์ ์ , Lua ์คํฌ๋ฆฝํธ, ์๋งค, ์น์ฐจ๊ถ |
| docs/order | ์ฃผ๋ฌธ, ์์ฝ ์ค๋ ์ท |
| docs/payment | ๊ฒฐ์ ์ค๋น์ ์น์ธ, ๊ฒฐ์ ์๋, Toss ์ฐ๋ |
| docs/batch | raillo-batch Job |
| docs/worker | ๊ฒฐ์ Outbox Worker, ์ค์ผ์ค๋ฌ |
| docs/infra | ๋น๋, ๋ฐฐํฌ, OKE ํด๋ฌ์คํฐ, ์ ์, ์์ด์ ํธ ์ ๊ทผ ์ ํ, ๋ฏผ๊ฐํ ๊ฐ ์ค์บ, ๋ชจ๋ํฐ๋ง |
์ฝ๋ ๊ท์น์ .agents/rules/์ ์๋ค. ์ฝ๋๋ฅผ ์ฐ๊ธฐ ์ ์ ์ฝ๋๋ค.
| ๊ท์น | ๋ค๋ฃจ๋ ๊ฒ |
|---|---|
| code-convention.md | ๋ ์ด์ด, ์์ธ, ์๋ฌ ์ฝ๋, ๋ค์ด๋ฐ, ์ฃผ์, ํธ๋์ญ์ , Redis |
| test.md | ํ ์คํธ ํ๊ฒฝ, ๊ธ์ง ์ฌํญ, ์์ฑ ์ปจ๋ฒค์ , ํ ์คํธ ๋ฐ์ดํฐ |
| docs.md | ๋ฌธ์ ์์น, ์ธ์ ๊ณ ์น๋๊ฐ, ์ด๋ป๊ฒ ์ฐ๋๊ฐ |
- Java 25, Spring Boot 4.1, Gradle ๋ฉํฐ ๋ชจ๋
- Spring Data JPA, QueryDSL 5, Spring Security, Spring Batch
- MySQL 8.4, Valkey 9 (Redis ํธํ, Hash field ๋ง๋ฃ ์ฌ์ฉ)
- ๊ฒฐ์ : ํ ์คํ์ด๋จผ์ธ
- ํ ์คํธ: JUnit 5, AssertJ, Testcontainers, ArchUnit
- ์ด์: Oracle Cloud OKE (Kubernetes), GHCR, GitHub Actions
raillo-domain Entity, VO, Enum, ๋๋ฉ์ธ ๊ท์น, Redis ํค ๊ณ์ฝ. ์คํํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
raillo-api REST API ์ฑ
raillo-batch Spring Batch ์ฑ. Job ํ๋๋ฅผ ์คํํ๊ณ ๋๋๋ค
์์กด ๋ฐฉํฅ์ raillo-domain โ raillo-api / raillo-batch๋ค. raillo-api์ raillo-batch๋ ์๋ก ์์กดํ์ง ์๋๋ค.
๋๋ฉ์ธ์ auth, member, train, booking(์์ฝ, ์๋งค), order, payment๋ค. ํจํค์ง๋ ๋๋ฉ์ธ ์๋์ ๋ ์ด์ด๋ฅผ ๋๋ค.
raillo-domain/.../{domain}/ domain/ cache/ exception/ util/
raillo-api/.../{domain}/ presentation/ application/{service,facade,validator,dto,...}/ infrastructure/
raillo-api/.../payment/ ํฅ์ฌ๊ณ ๋ : adapter/{webapi,persistence,integration,scheduling}/ application/{provided,required}/
raillo-batch/.../{domain}/ job/ application/ infrastructure/ config/
./gradlew build # ์ ์ฒด ๋น๋์ ํ
์คํธ
./gradlew :raillo-api:test --tests "{FQCN}" # ํ
์คํธ ํ๋
./gradlew :raillo-api:bootRun # API ์คํ. .env์ DB๋ฅผ ์ฐ๊ณ Valkey๋ compose๋ก ๋ฌ๋ค
./gradlew :raillo-batch:bootRun -Pjob={Job ์ด๋ฆ} # Batch Job ์คํํ ์คํธ๋ Docker๊ฐ ํ์ํ๋ค. Docker๋ฅผ ์ธ ์ ์์ผ๋ฉด ์ปดํ์ผ๊น์ง๋ง ํ์ธํ๊ณ ๊ทธ ์ฌ์ค์ ์๋ฆฐ๋ค.
์คํฌ์ .agents/skills/์ ์๋ค.
/issue โ /branch โ /implement [ ๊ตฌํ โ /test โ /commit ] ร n โ /review โ /docs โ /tidy-commits โ /pr
| ์คํฌ | ํ๋ ์ผ |
|---|---|
/issue |
ํ ํ์์ผ๋ก ์ด์๋ฅผ ์ฐ๊ณ ์น์ธ ํ ๋ง๋ ๋ค |
/branch |
{label}/{์ด์๋ฒํธ}-{์ค๋ช
} ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ต์ ๊ธฐ์ค์ผ๋ก ํ๋ค |
/implement |
์ด์๋ฅผ ์ปค๋ฐ ๋จ์ ๋จ๊ณ๋ก ๋๋ ๋จ๊ณ๋ง๋ค ๊ฒํ ๋ฅผ ๋ฐ๊ณ ์ปค๋ฐํ๋ค |
/test |
๊ท์น์ ๋ง๋ ํ ์คํธ๋ฅผ ์ฐ๊ณ ์คํํ๋ค |
/commit |
type: ์ค๋ช
(#N) ํ์์ผ๋ก ์ปค๋ฐํ๋ค |
/review |
๋ํ ๋งฅ๋ฝ์ด ์๋ ์๋ธ์์ด์ ํธ๊ฐ ๋ณ๊ฒฝ์ ๋ฆฌ๋ทฐํ๋ค. --deep์ด๋ฉด ๊ด์ ๋ณ๋ก ๋๋๋ค |
/docs |
๊ธธ์ด์ง ๋ฌธ์์์ ์ธ์ ๋งฅ๋ฝ, ์ค๋ณต์ ๊ฑท์ด๋ธ๋ค |
/tidy-commits |
PR ์ ์ ์์ ์ปค๋ฐ์ ํฉ์น๊ณ ๋ฉ์์ง๋ฅผ ์ ๋ฆฌํ๋ค. ์ฝ๋๋ ๋ฐ๊พธ์ง ์๋๋ค |
/pr |
์ด์ ๊ธฐ์ค์ผ๋ก PR์ ์ฐ๊ณ ์น์ธ ํ ๋ง๋ ๋ค |
/db-reset |
.env์ DB์์ ์ด์ฐจ, ํ์ ๋ฐ์ดํฐ๋ง ๋จ๊ธฐ๊ณ ํ
์ด๋ธ์ ์ง์ด๋ค |
- ์ด์, PR ์์ฑ์ฒ๋ผ ํ์ ๋ณด์ด๋ ์ผ๊ณผ push๋ ์ฌ์ฉ์ ์น์ธ์ ๋ฐ๊ณ ํ๋ค.
- ์์
์ ๋ง์น๋ฉด(๋ง์ง๋ง ์ปค๋ฐ ํ,
/review์ )bash .claude/hooks/run-tests.sh๋ก ์ ์ฒด ๋น๋์ ํ ์คํธ๋ฅผ ๋๋ฆฐ๋ค. ์ผ๋ถ ํ ์คํธ๋ง ๋๋ฆฌ๊ณ ๋๋ด์ง ์๋๋ค. ํต๊ณผ ๊ธฐ๋ก์ด ์๋ ์ปค๋ฐ์require-tests.shํ ์ด push์ PR ์์ฑ์ ๋ง๋๋ค. develop,main์์ ์ปค๋ฐํ์ง ์๋๋ค.develop์ ๋จธ์ง๋๋ฉด ์น์ธ ์์ด ์ด์์ ๋ฐฐํฌ๋๋ค. ์ด์ DB๋ddl-auto: validate๋ผ ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฐฐํฌ ์ ์ DB์ ๋ฐ์ํด์ผ ํ๋ค.- ์ด์ ํด๋ฌ์คํฐ์ DB๋ ์กฐํ๋ง ํ๋ค.
kubectl์get,describe,logs๊ฐ์ ์กฐํ ๋ช ๋ น๋ง ์ฐ๊ณ , DB๋qa/db-scripts/readonly-query.sh๋ก ์กฐํํ๋ค. ํด๋ฌ์คํฐ ๋ณ๊ฒฝ, DB ์ฐ๊ธฐ, ํฐ๋ ์ด๊ธฐ๊ฐ ํ์ํ๋ฉด ๋ช ๋ น์ ์ฌ์ฉ์์๊ฒ ์ ์ํ๊ณ ์ฌ์ฉ์๊ฐ ์คํํ๋ค. ์์ธ๋ ์ฌ์ฉ์ ์น์ธ ํ.env์ DB์ ์คํํ๋/db-reset์ด๋ค. Claude Code์์๋ ๊ฐ๋ ํ ์ด ๊ฐ์ ํ๋ค. โ ์์ด์ ํธ ์ ๊ทผ ์ ํ .env๋ ์ฝ๊ฑฐ๋ ์ถ๋ ฅํ์ง ์๋๋ค. ๋ด์ฉ ๊ฒ์์.gitignore๋ฅผ ๋ฐ๋ฅด๋git grep์ด๋rg๋ก ํ๋ค. ํ ์ ๋งํ๋ฉด ์ฐํํ์ง ๋ง๊ณ ์ด์ ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด๊ณ ํ๋ค.- ๋ฏผ๊ฐํ ๊ฐ pre-commit ํ
์ ์ฌ๋์ด ํด๋ก ๋ง๋ค ํ ๋ฒ ์ผ ๋ค(
brew install gitleaks && git config core.hooksPath .githooks). ํ ์ ๋งํ๋ฉดFile๊ณผLine์ ๋ณด๊ณ ํ๊ณ ํ์ฉ ๋ชฉ๋ก์ ์ค์ค๋ก ๋ํ์ง ์๋๋ค. โ ๋ฏผ๊ฐํ ๊ฐ ์ค์บ - ์ฝ๋์ ๊ณ์ฝ(API, ์ํ ์ ์ด, ์ ์ฅ ํ์, Redis ํค)์ ๋ฐ๊พธ๋ฉด ๊ฐ์ PR์์ ํด๋น ๋๋ฉ์ธ ๋ฌธ์๋ฅผ ๊ณ ์น๋ค.