Skip to content

Latest commit

Β 

History

History
108 lines (86 loc) Β· 3.15 KB

File metadata and controls

108 lines (86 loc) Β· 3.15 KB

개발 ν™˜κ²½ μ„€μ •

사전 μš”κ΅¬μ‚¬ν•­

  • Java 17
  • Docker & Docker Compose
  • Gradle

둜컬 개발 ν™˜κ²½ ꡬ좕

  1. μ €μž₯μ†Œ 클둠:

    git clone https://github.com/yourusername/memory.git
    cd memory
  2. 인프라 ν™˜κ²½ μ‹œμž‘ (PostgreSQL + PostGIS):

    ./gradlew memory-infra:localStart
  3. ν”„λ‘œμ νŠΈ λΉŒλ“œ:

    ./gradlew build
  4. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰:

    ./gradlew memory-api:bootRun
  5. API λ¬Έμ„œ 확인:

    http://localhost:8080/swagger-ui.html
    

ν™˜κ²½λ³„ Docker λͺ…λ Ήμ–΄

# 둜컬 ν™˜κ²½
./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:cleanDocker

ν…ŒμŠ€νŠΈ

HTTP ν΄λΌμ΄μ–ΈνŠΈ 파일

http/ λ””λ ‰ν† λ¦¬μ—λŠ” 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        # 도메인 λͺ¨λ“ˆ ν…ŒμŠ€νŠΈλ§Œ μ‹€ν–‰

CI/CD

개발 μ„œλ²„

.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                       # ν”„λ‘œμ νŠΈ κ°œμš”