- ์ด ์ ์ฅ์์์ Codex์ ์๋ธ์์ด์ ํธ๊ฐ ๋ฐ๋ผ์ผ ํ ๊ณต๊ฐ ์ด์ ๊ท์น์ ์ ์ํ๋ค.
- ์๋น์ค ์ ์ฑ , ๋น์ฆ๋์ค ์ ์ฑ , ์ด์ ํ๋จ ๊ธฐ์ค์ ๋ณธ๋ฌธ์ ์ ์ฅ์์ ๋์ง ์๋๋ค.
- ์ ์ฅ์ ์์๋ ๊ตฌํ ๊ท์ฝ, ์ํฌํ๋ก, ๊ฒ์ฆ ์ ์ฐจ, ์ญํ ๋ถ๋ฆฌ ์์น๋ง ๋๋ค.
- ์ด ๋ฌธ์๋ ์ ์ฅ์ ์ ์ฒด์ ์ ์ฉ๋๋ค.
- ํ์์ ๋ ๊ตฌ์ฒด์ ์ธ
AGENTS.md๊ฐ ์๊ธฐ๋ฉด ํด๋น ๋ฒ์์์ ์ฐ์ ํ๋ค. - ๋น๊ณต๊ฐ ์ ์ฑ ์ด ํ์ํ ์์ ์ ๋ก์ปฌ ๋น๊ณต๊ฐ ์ ์ฑ ๋ฌธ์๋ฅผ consultํด์ผ ํ๋ฉฐ, ๊ณต๊ฐ ๋ฌธ์๋ง์ผ๋ก ํ๋จ์ด ์ถฉ๋ถํ์ง ์์ผ๋ฉด ์ฌ์ฉ์ ํ์ธ์ด ํ์ํ๋ค.
- ๊ณต๊ฐ ์ด์ ๋ฌธ์ ์ธ๋ฑ์ค:
docs/README.md - Claude ํธํ ์ง์
์ :
CLAUDE.md - ๊ตฌํ ๊ท์ฝ ์ ๋ณธ:
docs/operations/policies/PROJECT_CONVENTIONS.md - ์ธ๋ถ ๋ฆฌ๋ทฐ ๊ท์น:
docs/operations/policies/EXTERNAL_REVIEW_WORKFLOW.md - ๋๋ฉ์ธ ๋ฌธ์ ์ง๋:
docs/operations/policies/DOMAIN_DOCUMENT_REGISTRY.md - Codex ์คํ ๋ฌธ์:
.codex/rules/*,.codex/subagents/*,.codex/workflows/*,.codex/skills/README.md - Claude ์คํ ์์ฐ:
.claude/agents/*
- ํ์ฌ ์ํ:
- Java 25
- Spring Boot 4.0.2
- Gradle 9.1.0
- ๋จ์ผ ๋ชจ๋ Gradle ํ๋ก์ ํธ
- JPA ๊ธฐ๋ฐ
- MySQL / H2 ํ์ ์กด์ฌ
- ๋ชฉํ ์ํ:
- Java 25
- Spring Boot 4.x ์ ์ง
- PostgreSQL
- Jakarta ๋ค์์คํ์ด์ค ๊ธฐ์ค
- ์ ์ฝ๋์ ๋ฆฌํฉํฐ๋ง์ ๋ชฉํ ์ํ ๋ฐฉํฅ์ ์ฐ์ ํ๋ค.
- ๋๊ท๋ชจ ์คํ ์
๊ทธ๋ ์ด๋๋
Spring Boot 2.7.x -> 3.5.x -> 4.x์ ๋จ๊ณํ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ก ๋ณธ๋ค. - ํ์ฌ ๊ธฐ์ค์ ์
Java 25 + Spring Boot 4.0.2 + Gradle 9.1.0์ด๋ค. - Java 25 ๊ธฐ์ค์ ์
jdeps์์ฌ๋ ํ์ฉ ๋ฆฌ์คํฌ๋ก ๊ธฐ๋กํ๋, Spring Boot 4 ๊ธฐ์ค์ผ๋ก ์ฌํ๊ฐํ๋ค. - storage ๊ธฐ๋ฅ์ ํ์ฌ ๋นํ์ฑ ๊ธฐ๋ณธ๊ฐ(
feature.storage.enabled=false)์ ์ฌ์ฉํ๋ฉฐ, ์ด๋ฏธ์ง ์ ๋ก๋/์ญ์ ์์ฒญ์503 fail-fast์ ์ฑ ์ ๋ฐ๋ฅธ๋ค. - ๋จ, ์ด๋ฒ ์ ์ฅ์ ์ ์ ์ ์ค์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํํ์ง ์๋๋ค.
- ์์ฑ์ ์ฃผ์ ๋ง ์ฌ์ฉํ๋ค.
- Controller๋ HTTP ์ ์ถ๋ ฅ, ์ธ์ฆ ์ปจํ ์คํธ, ์๋ต ์กฐ๋ฆฝ๋ง ๋ด๋นํ๋ค.
- Service๋ ์ ์ค์ผ์ด์ค ์กฐํฉ๊ณผ ๋น์ฆ๋์ค ํ๋ฆ์ ๋ด๋นํ๋ค.
- Repository๋ ์กฐํ์ ์ ์ฅ๋ง ๋ด๋นํ๊ณ ์ ์ฑ ํ๋จ์ ๋ฃ์ง ์๋๋ค.
- API ๊ฒฝ๊ณ์์๋ DTO๋ฅผ ์ฐ์ ํ์ง๋ง, ์๋น์ค ๋ด๋ถ ๋ฐํ ํ์ ์ ์ ์ค์ผ์ด์ค ๋ณต์ก๋์ ๊ฒฝ๊ณ ์ฑ๊ฒฉ์ ๋ง๊ฒ ์ ํํ๋ค.
- ํธ๋์ญ์ ๊ฒฝ๊ณ๋ ์๋น์ค ๊ณ์ธต์์ ๋ช ์ํ๋, ์กฐํ๋ผ๊ณ ํญ์ ํธ๋์ญ์ ์ ์ฌ๋ ๋ฐฉ์์ ์ง์ํ๋ค.
- ์๋น์ค ๊ฐ ์ํ์ฐธ์กฐ์ ์ํฐํฐ ์ง๋ ฌํ ์ํ์ฐธ์กฐ๋ฅผ ํญ์ ๊ฒฝ๊ณํ๋ค.
- ๋ชฉ๋ก/์์ธ/๋ฐฐ์น ์กฐํ์์๋ N+1 ์ํ์ด ์๋์ง ์ ๊ฒํ๋ค.
- ์์ ๊ตญ์ ์์ ์ด ๊ฐ๋ฅํ๋ฉด ์ ์ถ์ํ๋ณด๋ค ๊ตญ์ ์์ ์ ์ฐ์ ํ๋ค.
- ํ์ฌ ์ฝ๋๋ฒ ์ด์ค์ ๋ ๊ฑฐ์ ํจํด์ ๊ด์ฐฐ ๋์์ด์ง ์ ๊ท ๊ธฐ์ค์ด ์๋๋ค.
- ํ์ฌ ๊ธฐ๋ณธ ๊ฒ์ฆ:
sh gradlew test gradlew์คํ ๋นํธ๋ฅผ ๋ณต๊ตฌํ ๋ค์๋./gradlew test๋ฅผ ๊ธฐ๋ณธ ๊ฒ์ฆ์ผ๋ก ์ฌ์ฉํ๋ค.- ํ์ฅ ๊ฒ์ฆ:
sh gradlew clean test - Gradle/JDK/์ปดํ์ผ ํ๊ฒฝ ๋ฌธ์ ๋ก ํ ์คํธ๊ฐ ์์๋๊ธฐ ์ ์ ๋งํ๋ฉด ๊ทธ ์์ธ์ ๊ฒ์ฆ ๊ฒฐ๊ณผ์ ํจ๊ป ๋ณด๊ณ ํ๋ค.
- ๋ฌธ์/์ด์์ฒด๊ณ ๋ณ๊ฒฝ์ด๋ผ๋ ๊ฐ๋ฅํ ๋ฒ์์์ ๊ธฐ๋ณธ ๊ฒ์ฆ์ ์๋ํ๋ค.
- ์ ์ฒด ํ๋ฆ:
- ์ ๊ธฐ๋ฅ
- ๊ตฌ์กฐ ๋ณ๊ฒฝ
- ์ธ์ฆ/๋ณด์ ๋ณ๊ฒฝ
- DB ์ํฅ ๋ณ๊ฒฝ
- ์ฌ๋ฌ production ํ์ผ์ ๊ฑธ์น ๋น๊ตญ์ ๋ณ๊ฒฝ
- ๋ฒ๊ทธ ์์ ํ๋ฆ:
- ์ฌํ ๊ฐ๋ฅํ ๋จ์ผ ๋ฒ๊ทธ
- ๋ฒ์๊ฐ ์์ ๋จ์ผ ์ฑ ์ ์์
- ๋ฆฌํฉํฐ๋ง ํ๋ฆ:
- ๊ตฌ์กฐ ์ ๋ฆฌ
- ์ค๋ณต ์ ๊ฑฐ
- ํจํค์ง/ํด๋์ค ์ฑ ์ ์ ๋
- ๊ตฌํ ์ ์ ์ต์ํ ์ฌํ ์ผ์ด์ค ๋๋ ์คํจ ํ ์คํธ๋ฅผ ์ ์ํ๋ค.
- ๊ตฌํ ํ ๋ฆฌ๋ทฐ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค.
- ์๋ฃ ์ ์ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค.
- ๊ณต๊ฐ ๊ท์น๋ง์ผ๋ก ํ๋จํ ์ ์๋ ์ ์ฑ ์ฑ ๋ณ๊ฒฝ์ ์ฌ์ฉ์ ํ์ธ ์์ด๋ ์๋ฃ ์ฒ๋ฆฌํ์ง ์๋๋ค.
- ์ญํ ๋ถ๋ฆฌ ์์น๊ณผ primary Codex role ๋งคํ์
.codex/subagents/README.md๋ฅผ ๋ฐ๋ฅธ๋ค. - Claude Code ์ฌ์ฉ์๋ ์ค์ ์คํ ๊ฐ๋ฅํ ์๋ธ์์ด์ ํธ๋ฅผ
.claude/agents/*์์ ์ฐ์ ์ฌ์ฉํ๋ค. - ๋ณ๋ ฌํ๋ ์ฑ ์ ๋ฒ์๊ฐ ๊ฒน์น์ง ์์ ๋๋ง ์ฌ์ฉํ๋ค.
- ์ญํ ๋ฌธ์์ ์๋ ์์์ ์ ์ฉ ์ญํ ์ ๋ง๋ค๊ธฐ๋ณด๋ค ๊ธฐ์กด ์ญํ ๋ฌธ์๋ฅผ ์ฐ์ ์ฌ์ฌ์ฉํ๋ค.
- ์ ์ฅ์์๋ ๋น๊ณต๊ฐ ์ ์ฑ ์ ์ ๋ชฉ, ๋ด์ฉ, ์์ ๊ท์น, ํ๋จ ๊ธฐ์ค์ ์ฐ์ง ์๋๋ค.
- ๊ณต๊ฐ ๋ฌธ์์๋
private-policy: yes/no์์ค์ consult ํ์ ์ฌ๋ถ๋ง ๊ธฐ๋กํ๋ค. - ๋น๊ณต๊ฐ ์ ์ฑ ์ ์ ๊ทผํ ์ ์๊ณ ๊ทธ ์ ์ฑ ์ด ์์ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค ์ ์์ผ๋ฉด ์์ ์ ์ค๋จํ๊ณ ์ฌ์ฉ์์๊ฒ ํ์ธํ๋ค.