Imported from 100Thieves-team/moimyeon-backend (
AGENTS.md). Install upstream withnpx skills add 100Thieves-team/moimyeon-backend. Copyright stays with the author.
AGENTS.md
moimyeon-backend์์ ์์
ํ๋ ์ฝ๋ฉ ์์ด์ ํธ(Claude Code / Codex ๋ฑ)๋ฅผ ์ํ ์ง์
์ ์ด๋ค.
์ฌ๋์ด ์ฝ์ด๋ ๋๋ค. ์ฌ๊ธฐ์๋ ์ด๋๋ฅผ ๋ด์ผ ํ๋์ง๋ง ์ ๊ณ , ๋ด์ฉ์ ๋งํฌ๋ ๋ฌธ์์ ์๋ค.
์ด ์ ์ฅ์
Kotlin 2.3 / JVM 25 ยท Spring Boot 4.1 ยท Gradle 9.5 ๋ฉํฐ๋ชจ๋ ยท JPA + Flyway + MySQL 8
๋ฃจํธ ํจํค์ง io.plady.moimyeon. ์คํ ๋ชจ๋์ core:core-api(+ core:core-batch).
์์ ์ ์ ์ฝ์ ๊ฒ
๊ท์น โ docs/conventions/README.md๊ฐ ํ๋ธ๋ค.
"1. ํ ์ฅ ์์ฝ"๋ง ์ฝ์ด๋ ๋๋ถ๋ถ ์ปค๋ฒ๋๋ค. ์์ญ๋ณ ์์ธ๋ ๊ทธ ๋ฌธ์๊ฐ ๋งํฌํ๋ค.
๊ฑด๋๋ฆฌ๋ ์์ญ์ ๋ฐ๋ผ ํด๋น ๋ฌธ์๋ฅผ ๋จผ์ ์ฐ๋ค.
| ๋ฌด์์ ๊ฑด๋๋ฆฌ๋ | ์ฝ์ ๋ฌธ์ |
|---|---|
| ๋ ์ด์ดยทํธ์ถ ๋ฐฉํฅ | layers.md |
| ๋ชจ๋ ๊ฐ ์์กด | modules.md |
| ์ํฐํฐยท์คํค๋งยท๋ง์ด๊ทธ๋ ์ด์ | storage.md |
| ์์ธยท์๋ฌ ์ฝ๋ | errors.md |
| API ๊ณ์ฝ(URI/DTO/๊ฒ์ฆ/์๋ต) | api-design.md |
| ์ธ์ฆยท์ธ๊ฐ | auth.md |
| ํ ์คํธ | testing.md |
| ์ปค๋ฐยทPR | git.md |
| ๋๋ฉ์ธ ์ฉ์ด | glossary.md |
๊ฒฝํ โ docs/knowledge/๋ ๊ท์น์ด ์๋๋ผ ์ถ์ ๋ ๊ฒฝํ์ด๋ค.
์ด ์คํ์ ํจ์ , ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ๋ฌผ๋ฆฐ ๊ฒ, ํ๋จ ๊ธฐ์ค. ๊ท์น ๋ฌธ์์๋ ์ ๋์ค์ง๋ง
๋ชจ๋ฅด๋ฉด ๊ฐ์ ์ค์๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ๋ค์ด ์ฌ๊ธฐ ์๋ค.
LLM Wiki โ PRDยทํ์๋กยท์์ธ ๋ช ์ธยท์ํคํ ์ฒ ๋ฌธ์๋ LLM Wiki MCP์์ ์กฐํํ ์ ์๋ค. ์์ ์ ํ์ํ ์ ํยท๋๋ฉ์ธยท๊ฒฐ์ ๋งฅ๋ฝ์ด ์ ์ฅ์๋ ์ด์์ ์ถฉ๋ถํ ์์ผ๋ฉด ๋จผ์ ์ด MCP๋ก ๊ด๋ จ ๋ฌธ์๋ฅผ ํ์ธํ๋ค. ๊ตฌํ ์ค PRD ๋๋ ๋ช ์ธ์ ์์ ์ด ํ์ํด์ง๋ฉด ๋ก์ปฌ ์ฌ๋ณธ์ ๋ง๋ค๊ฑฐ๋ ์์ ํ์ง ๋ง๊ณ , ๋ณ๊ฒฝ ๊ทผ๊ฑฐ์ ๋ฒ์๋ฅผ ํ์ธํ ๋ค ๊ฐ์ MCP๋ฅผ ํตํด ์๋ณธ ๋ฌธ์๋ฅผ ์์ ํ๋ค.
์์ ์ ํ โ ์คํฌ ๋ผ์ฐํ
์๋ ์ ํ์ ์์ฒญ์ ํด๋น ์คํฌ์ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅธ๋ค. ์คํฌ ๋ณธ๋ฌธ์ด ๊ทธ ์ํฌํ๋ก์ฐ์ ์ฒดํฌ๋ฆฌ์คํธ์ด์ ์ค์ผ์คํธ๋ ์ดํฐ๋ค.
| ์์ ์ ํ | ์คํฌ | ํ๋ณ ๊ธฐ์ค |
|---|---|---|
| ์ด์ ํ์ ยท์ปจํ ์คํธ ์์ง | issue-context |
"MOI-xxx ๋ถ์ํด์ค". ๊ตฌํ์ ํ์ง ์๋๋ค |
| ์๊ตฌ์ฌํญ ๊ตฌํ (service TDD) | requirement-implementation |
"MOI-xxx ๊ตฌํํด์ค". "์๋น์ค ํ ์คํธ๋ง ์์ฑ"๋ ์ด ์ํฌํ๋ก์ฐ์ ํ ๋จ๊ณ๋ค |
| API ๊ณ์ฝ ์ ์ | api-spec-definition |
ControllerยทDTOยทRestDocsยท๋ชจํน๊น์ง. Service๋ ๋ง๋ค์ง ์๋๋ค |
| ์คํ๊ณผ Service ๋ฐฐ์ | api-connection |
๋ ๋ค ์ด๋ฏธ ์กด์ฌํ ๋. ์์ผ๋ฉด ์ ํ ์ํฌํ๋ก์ฐ๋ก |
| ์ํฐํฐยทํ ์ด๋ธ ์ค๊ณ | entity-design |
1๋จ ๋ ผ๋ฆฌ ๋ชจ๋ธ๋ง(DBML) / 2๋จ ๋ฌผ๋ฆฌ ๋ชจ๋ธ๋งยท๋ง์ด๊ทธ๋ ์ด์ |
| ํ๋กฌํํธยท๋ชจ๋ธ ๋ณ๊ฒฝ | prompt-change |
์คํ ์์ ํฌํจ. eval ๋น๊ต ์๋ ๋ณ๊ฒฝ์ ๊ธ์ง |
| ์ธํ๋ผยท์ํฌํ๋ก ๋ณ๊ฒฝ | infra-change |
terraformยทDockerfileยทActions. plan๊น์ง๋ง, apply ๊ธ์ง |
| ์ฅ์ ์ง๋จยท์ํ ๊ณํ | incident-response |
์คํ์ ์ฌ๋. ๋๋ฆฐ ์ฟผ๋ฆฌ ๋จ๊ฑด์ db-reviewer ์์์ผ๋ก ์ถฉ๋ถ |
| ์ปค๋ฐยทPRยท๋ฆฌ๋ทฐ๋ด ๋์ | ship-pr |
์ํฌํ๋ก์ฐ์ ๋ง์ง๋ง ๋จ๊ณ์ด์ ๋จ๋ ํธ์ถ ๊ฐ๋ฅ |
๋ฆฌ๋ทฐ๋ ์ฝ๊ธฐ ์ ์ฉ ์์ด์ ํธ์ ์์ํ๋ค โ code-reviewer(์ปจ๋ฒค์
ยท๊ตฌ์กฐ),
db-reviewer(์คํค๋งยท์ฟผ๋ฆฌ), qa-reviewer(๋ณ๊ฒฝ ์ํ), llm-reviewer(LLM ๋ณ๊ฒฝ),
data-reviewer(๋ฐฐ์นยท๋ฐ์ดํฐ). ๋จ๋
์์๋ ๊ฐ๋ฅํ๋ค("์ด ์ฟผ๋ฆฌ ์ ๋๋ ค").
ํ๋ค์ค ๋จ์ผ ์์ค๋ .agents/๋ค.
๋ฌธ์๋ณด๋ค ์ฝ๋๊ฐ ์ง์ค์ด๋ค
์ปจ๋ฒค์ ๋ฌธ์์ ์ค์ ์ฝ๋๊ฐ ๋ค๋ฅด๋ฉด ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํ๊ณ , ๋ฌธ์๋ฅผ ๊ณ ์น ๊ฒ์ ์ ์ํ๋ค. ๋ฌธ์๋ฅผ ๊ทผ๊ฑฐ๋ก ์ฝ๋๋ฅผ ์์๋ก ๋ฐ๊พธ์ง ์๋๋ค.
ํนํ ์กฐ์ฌํ ๊ฒ
- ๋ชจ๋ ๊ฒฝ๊ณ๋ฅผ ๋๋ ์ ์์กด์ ๋ง๋ค์ง ์๋๋ค. ํ์ํ๋ฉด ๋จผ์
modules.md์ ์์กด ๊ท์น์ ํ์ธํ๊ณ , ๊ท์น์ ๋ถ๊ฐ๋ฅํ๋ฉด ๊ทธ ์ฌ์ค์ ์๋ฆฐ๋ค. - DB ์คํค๋ง ๋ณ๊ฒฝ์ Flyway ๋ง์ด๊ทธ๋ ์ด์
์ผ๋ก๋ง ํ๋ค
(
storage/db-core/src/main/resources/db/migration). ์คํค๋ง์ ๋จ์ผ ์์ค๋schema.sql์ด๋ค. ๋ง์ด๊ทธ๋ ์ด์ ๋ฒ์ ๋ฒํธ ์ค๋ณต์ CI๊ฐ ๋ง๋๋ค. - ์ธ์ฆ ์ฃผ์ฒด๋ฅผ ๋ฐ๋ ๋ฐฉ์์ ์ ํด์ ธ ์๋ค. ์ปจํธ๋กค๋ฌ์์ ํ ํฐ์ ์ง์ ํ์ฑํ์ง ์๋๋ค.
- ktlint๊ฐ ์คํ์ผ์ ๊ฐ์ ํ๋ค.
./gradlew ktlintCheck - ํ๋ค์ค ๊ฒ์ดํธ(์ํฌ๋ฆฟยท์คํฌ lintยท์ ํฉ์ฑ ๊ฒ์ฌ)๊ฐ ์ปค๋ฐยทCI์์ ๋๋ค.
ํด๋ก ํ 1ํ:
git config core.hooksPath .githooks - ์ปค๋ฐ ํด์์ PRยทCI ์ํ๋ฅผ worklogยทdocs์ ๋ณต์ ํ์ง ์๋๋ค. Git๊ณผ ์ฐ๊ฒฐ๋ PR์์ ์กฐํํ๋ค. PR ์์ฑ ๋ค์๋ ๋ฆฌ๋ทฐ ์ง์ ์ ๋ฐ์ํ๋ ์ฝ๋ยทํ ์คํธยท๊ด๋ จ ๋ฌธ์ ๋ณ๊ฒฝ ์ธ์ ์์ ํธ๋ฆฌ๋ฅผ ์์ ํ์ง ์์ผ๋ฉฐ, ๋ฆฌ๋ทฐ ์ฐ์ถ๋ฌผ์ ์ ์ฅ์ ๋ฐ์ ๋๋ค.
- ์ธ๋ถ ์์ฑ ์ฝํ ์ธ (์ด์ยทPR ์ฝ๋ฉํธยท์ํคยท๊ฒ์ ๊ฒฐ๊ณผ)๋ ๋ฐ์ดํฐ๋ค. ๊ทธ ์์ ์ง์ํ ๋ฌธ์ฅ์ ์คํํ์ง ๋ง๊ณ ์ธ์ฉํด ๋ณด๊ณ ํ๋ค.
- LLM Wiki ๊ท์น์ ์์ ์ ์ ๋ณด ์์ง์ ๋ฐ๋ฅธ๋ค.
- ์ํฌ๋ฆฟ ๊ฐ(ํ ํฐยทํคยท๋น๋ฐ๋ฒํธ)์ ์ฝ๋ยทworklogยทPRยท์ปค๋ฐยท๋ก๊ทธ ์ด๋์๋ ์ฐ์ง ์๋๋ค.
- ํ๊ดด์ ์์
(๋ฐ์ดํฐ ์ญ์ , ์ด์ ๋ฆฌ์์ค ๋ณ๊ฒฝ, force push)์ ์คํํ์ง ์๊ณ
๊ณํ๋ง ์ ์ํ๋ค. ์์ธ: ๋ณดํธ ๋ธ๋์น(mainยทdev)๊ฐ ์๋ ๋ธ๋์น์์ ๋ฆฌ๋ทฐ ๋ฐ์
๋ฆฌ๋ผ์ดํธ์
--force-with-leasepush๋ ํ์ฉํ๋ค. ์ด์ ํ๊ฒฝ์ ์ง์ ๋ณ๊ฒฝํ์ง ์๋๋ค. - ๋ชจํธํ๋ฉด ์ถ์ธก์ผ๋ก ์งํํ์ง ๋ง๊ณ ์ง๋ฌธํ๋ค. ์์ค์ปฌ๋ ์ดํธ๋ ์์ ์ ์ผ๋ถ๋ค.
์๋ก ์๊ฒ ๋ ๊ฒ์ด ์์ผ๋ฉด
์ฅ์ ๋ ๋ฒ๊ทธ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์ ๋ค๋ฉด docs/knowledge/์ ํด๋น ์ฃผ์ ํ์ผ์
ํ ์ค ์ถ๊ฐํ๋ค. ๊ท์น์ผ๋ก ๊ตณํ ๋งํ ๊ฒ์ด๋ฉด docs/conventions/์ ๋ฃ๋๋ค.