- Java 17
- Docker & Docker Compose
- Gradle
-
μ μ₯μ ν΄λ‘ :
git clone https://github.com/yourusername/memory.git cd memory -
μΈνλΌ νκ²½ μμ (PostgreSQL + PostGIS):
./gradlew memory-infra:localStart
-
νλ‘μ νΈ λΉλ:
./gradlew build
-
μ ν리μΌμ΄μ μ€ν:
./gradlew memory-api:bootRun
-
API λ¬Έμ νμΈ:
http://localhost:8080/swagger-ui.html
# λ‘컬 νκ²½
./gradlew memory-infra:localStart # μμ
./gradlew memory-infra:localStop # μ€μ§
# κ°λ° νκ²½
./gradlew memory-infra:devStart # μμ
./gradlew memory-infra:devStop # μ€μ§
# νλ‘λμ
νκ²½
./gradlew memory-infra:prodStart # μμ
./gradlew memory-infra:prodStop # μ€μ§
# Docker 리μμ€ μ 리
./gradlew memory-infra:cleanDockerhttp/ λλ ν 리μλ API ν
μ€νΈλ₯Ό μν HTTP ν΄λΌμ΄μΈνΈ νμΌλ€μ΄ λλ©μΈλ³λ‘ μ 리λμ΄ μμ΅λλ€:
http/
βββ member/member.http # νμ κ΄λ ¨ API ν
μ€νΈ
βββ map/map.http # μ§λ κ΄λ ¨ API ν
μ€νΈ
βββ memory/memory.http # μΆμ΅ κ΄λ ¨ API ν
μ€νΈ
βββ file/file.http # νμΌ μ
λ‘λ ν
μ€νΈ
βββ game/ # κ²μ κ΄λ ¨ API ν
μ€νΈ
βββ ...
βββ http-client.env.json # νκ²½ λ³μ μ€μ
IntelliJ IDEAμ HTTP Clientλ VS Codeμ REST Client νμ₯μΌλ‘ μ¬μ©ν μ μμ΅λλ€.
./gradlew test # μ 체 ν
μ€νΈ μ€ν
./gradlew memory-api:test # API λͺ¨λ ν
μ€νΈλ§ μ€ν
./gradlew memory-domain:test # λλ©μΈ λͺ¨λ ν
μ€νΈλ§ μ€ν.github/workflows λλ ν 리μ GitHub Actions μν¬νλ‘μ°:
- build-push.yml: μ ν리μΌμ΄μ λΉλ λ° Docker μ΄λ―Έμ§ νΈμ
- deploy-dev.yml: κ°λ° νκ²½ μλ λ°°ν¬
- run-tests.yml: μλνλ ν μ€νΈ μ€ν
νλ‘λμ νκ²½μ AWS PIPELINEμ ν΅ν΄ κ΄λ¦¬λλ©°, EC2 μΈμ€ν΄μ€μ λ°°ν¬λ©λλ€.
memory/
βββ .github/ # GitHub μ€μ
β βββ workflows/ # CI/CD νμ΄νλΌμΈ
βββ docs/ # νλ‘μ νΈ λ¬Έμ
βββ http/ # API ν
μ€νΈ νμΌ
βββ memory-api/ # π μΉ κ³μΈ΅
βββ memory-common/ # π§ κ³΅ν΅ κ³μΈ΅
βββ memory-domain/ # π λλ©μΈ κ³μΈ΅
βββ memory-infra/ # π³ μΈνλΌ κ³μΈ΅
βββ memory-batch/ # β‘ λ°°μΉ κ³μΈ΅
βββ build.gradle # λ£¨νΈ λΉλ μ€μ
βββ settings.gradle # λͺ¨λ μ€μ
βββ README.md # νλ‘μ νΈ κ°μ