Skip to content

κ·ΈλΌλ°‹πŸ‘©πŸ»β€πŸ”¬ - λŒ€ν•™μ›μƒ μ—°κ΅¬μžμ™€ ν”Όν—˜μž 역할을 μ›ν•˜λŠ” λŒ€ν•™μƒμ„ μ—°κ²°ν•΄μ£ΌλŠ” 맀칭 μ„œλΉ„μŠ€

License

Notifications You must be signed in to change notification settings

YAPP-Github/Gradmeet-BE

Repository files navigation

Gradmeet πŸ”¬

πŸ“Ž Architecture

architecture



✨ Tech Stack

IDE IntelliJ
Language Kotlin
Framework Spring Boot 3.4.1, Gradle
Authentication Spring Security, JSON Web Tokens
ORM Spring Data JPA
Database MariaDB
External Nginx, Docker, Redis, AWS SES
CI/CD Github Action
API Docs Swagger

πŸ“¦ Module Structure

domain: 도메인 λͺ¨λ“ˆ

- λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜λŠ” 핡심 도메인 객체듀 (model)
- 도메인 객체의 μ˜μ†μ„± 및 μ™ΈλΆ€ μ‹œμŠ€ν…œκ³Όμ˜ μΈν„°νŽ˜μ΄μŠ€ (gateway)
infrastructure presentation application domain
μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“ˆ μ—¬λΆ€ - - - -

application: μ‘μš© μ„œλΉ„μŠ€/UseCase λͺ¨λ“ˆ

- λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μˆ˜ν–‰ν•˜λŠ” μ„œλΉ„μŠ€ 및 μœ μ¦ˆμΌ€μ΄μŠ€ κ΅¬ν˜„
- 도메인 객체λ₯Ό ν™œμš©ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ£Όμš” λ™μž‘μ„ 처리
infrastructure presentation application domain
μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“ˆ μ—¬λΆ€ - - - O

presentation : μš”μ²­ 처리 λͺ¨λ“ˆ

- ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›μ•„ 응닡을 λ°˜ν™˜ν•˜λŠ” μ—­ν• 
- λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ 직접 μˆ˜ν–‰ν•˜μ§€ μ•Šκ³  application 계측을 ν˜ΈμΆœν•˜μ—¬ 처리
- Controller, Request/Response DTO, ExceptionHandler 등이 μœ„μΉ˜
infrastructure presentation application domain
μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“ˆ μ—¬λΆ€ - - O O

infrastructure : μ™ΈλΆ€ 톡신 λͺ¨λ“ˆ

- DB, μ™ΈλΆ€ API λ“± μ™ΈλΆ€ μ‹œμŠ€ν…œκ³Όμ˜ 연결을 λ‹΄λ‹Ήν•˜λŠ” 계측
- JPA Repository, FeignClient, S3, Redis λ“±μ˜ κ΅¬ν˜„μ²΄κ°€ μœ„μΉ˜
- 도메인 계측과 직접 μ—°κ²°λ˜μ§€ μ•Šκ³  gateway(μΈν„°νŽ˜μ΄μŠ€)λ₯Ό 톡해 μ ‘κ·Ό
infrastructure presentation application domain
μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“ˆ μ—¬λΆ€ - O O O

πŸ‘©πŸ»β€πŸ’» Contributors

About

κ·ΈλΌλ°‹πŸ‘©πŸ»β€πŸ”¬ - λŒ€ν•™μ›μƒ μ—°κ΅¬μžμ™€ ν”Όν—˜μž 역할을 μ›ν•˜λŠ” λŒ€ν•™μƒμ„ μ—°κ²°ν•΄μ£ΌλŠ” 맀칭 μ„œλΉ„μŠ€

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published