Skip to content

πŸŠβ€β™‚οΈ μΉœκ΅¬λ“€μ˜ 응원과 ν•¨κ»˜ν•˜λŠ” 수영일기, Swimie!

Notifications You must be signed in to change notification settings

depromeet/Swimie-server

Repository files navigation

🏊 Swimie | μΉœκ΅¬λ“€μ˜ 응원과 ν•¨κ»˜ν•˜λŠ” 수영일기

frame

πŸ—οΈ Architecture

Infrastructure

infrastructure

Software Architecture (Hexagonal)

hexagonal


πŸ“‚ Module & Directory Structure

Directory Structure

β”œβ”€β”€ .github
β”œβ”€β”€ module-presentation  # API κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„
β”œβ”€β”€ module-batch  # 배치 μ„œλ²„
β”œβ”€β”€ module-independent  # 독립 λͺ¨λ“ˆ
β”œβ”€β”€ module-domain  # 도메인 λͺ¨λ“ˆ
β”œβ”€β”€ module-infrastructure  # μ™ΈλΆ€ λͺ¨λ“ˆ
β”‚   └── persistence-database # λ°μ΄ν„°λ² μ΄μŠ€ λͺ¨λ“ˆ
β”‚   └── persistence-redis # Redis λͺ¨λ“ˆ
β”‚   └── object-storage # 객체 μ €μž₯μ†Œ λͺ¨λ“ˆ
β”‚   └── google-spreadsheet # ꡬ글 μŠ€ν”„λ ˆλ“œμ‹œνŠΈ λͺ¨λ“ˆ
└── docs # 데이터 κ΄€λ¦¬μš© 폴더

Multi Module Structure

  • λ©€ν‹° λͺ¨λ“ˆκ³Ό ν—₯사고날 μ•„ν‚€ν…μ²˜λ₯Ό μ μš©ν•˜μ—¬ λͺ¨λ“ˆ κ°„ μ˜μ‘΄μ„±μ„ λΆ„λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • Domain λͺ¨λ“ˆμ€ 순수 μžλ°” λͺ¨λ“ˆλ‘œ κ΅¬μ„±λ˜μ–΄ 있으며, μ™ΈλΆ€ μ˜μ‘΄μ„±μ„ 가지지 μ•ŠμŠ΅λ‹ˆλ‹€.
  • 각 λͺ¨λ“ˆμ€ Domain λͺ¨λ“ˆμ— λŒ€ν•œ μ˜μ‘΄μ„±μ„ 가지고 있으며, μƒμœ„ λͺ¨λ“ˆμ€ ν•˜μœ„ λͺ¨λ“ˆλ§Œμ„ μ˜μ‘΄ν•˜λ„λ‘ μ„€κ³„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸš— How to start?

  • presentation λͺ¨λ“ˆ(API κ²Œμ΄νŠΈμ›¨μ΄ μ„œλ²„)을 μ‹€ν–‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” 메인 λ””λ ‰ν† λ¦¬μ—μ„œ ./gradlew :module-presentation:build λͺ…λ Ήμ–΄λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  • java -jar /module-presentation/build/libs/module-presentation.jar λͺ…λ Ήμ–΄λ₯Ό 톡해 μ„œλ²„λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

πŸ’» Tech Stack

  • Java 21
  • Gradle 8.8
  • MySQL 8.0.35

Framework

Database

Auth -

Business Logic Test -

Performance Test -

Cloud -

Monitoring -


πŸ“ˆ Database Schema

ERD


Developers

πŸ§‘β€πŸ’» Server Engineers

μ‹ λ―Όμ²  홍성주 양원채