2025.12.22 ~ 2026.2.20
UMC 9th νλ‘μ νΈ μλ¦λ΅ - Backend
-
κΈ°λ³Έ λΈλμΉ
- main
- λ°°ν¬ λ° μ΅μ’ κ²°κ³Όλ¬Ό λΈλμΉ
- μ§μ μ»€λ° β
- develop
- κ°λ° ν΅ν© λΈλμΉ
- κΈ°λ₯ κ°λ° μλ£ ν PRμ ν΅ν΄ λ³ν©
- main
-
μμ λΈλμΉ
- μλ‘μ΄ κΈ°λ₯ ꡬν
feat/#μ΄μλ²νΈ
- λ²κ·Έ λ° μ€λ₯ ν΄κ²°
fix/#μ΄μλ²νΈ
- 리ν©ν λ§ (κΈ°λ₯ λ³κ²½ μμ)
refactor/#μ΄μλ²νΈ
- κΈ΄κΈ μμ
hotfix/#μ΄μλ²νΈ
- μλ‘μ΄ κΈ°λ₯ ꡬν
- νμ
[Type] #μ΄μλ²νΈ μμ λ΄μ©
- κ·μΉ
- 컀λ°μ νλμ λͺ©μ λ¨μλ‘ μμ±
- λΆνμνκ² μ¬λ¬ μμ μ ν 컀λ°μ ν¬ν¨ β
- λ©μμ§λ νκΈλ‘ μμ±
- μμ
[Feat] #2 νμκ°μ API ꡬν[Fix] #3 λ‘κ·ΈμΈ ν ν° μ¬λ°κΈ μ€λ₯ μμ [Refactor] #4 UserService λ‘μ§ λΆλ¦¬
- PR μμ± κ·μΉ
- develop λΈλμΉλ‘λ§ PR μμ±
- PR μ λͺ©μ Issue μ λͺ©κ³Ό λμΌνκ² μμ±
- PR λ΄μ©
- μμ λ΄μ© μμ½
- κ΄λ ¨ μ΄μ λ²νΈ λͺ μ
- API λ³κ²½ μ Swagger μΊ‘μ² μ²¨λΆ
- λ³ν© κ·μΉ
- μ΅μ 2λͺ 리뷰 νμ
- μΆ©λ λ°μ μ PR μμ±μκ° μ§μ ν΄κ²°
- λͺ¨λ μμ μ Issue μμ± ν μ§ν
- κΈ°λ₯ λ¨μλ‘ Issue λΆλ¦¬
- μμ λΈλμΉλ Issue λ²νΈ κΈ°λ°μΌλ‘ μμ±
- Issue μ λͺ© μμ
[Feat] νμκ°μ API ꡬν[Fix] μ΄λ©μΌ μΈμ¦ λ§λ£ μ€λ₯[Refactor] μΈμ¦ λ‘μ§ κ΅¬μ‘° κ°μ
src
ββ main
ββ common
β ββ exception
β ββ response
β ββ status
β β ββ error
β β ββ success
β ββ base
β ββ config
β ββ jwt
β ββ properties
β
ββ domain
ββ example-domain
ββ controller
ββ service
ββ repository
ββ entity
ββ enums
ββ dto
ββ request
ββ response
- CQRS ν¨ν΄ μ μ©
- Serviceλ μΈν°νμ΄μ€ μμ΄ λ¨μΌ ꡬν체
- ν΄λμ€ / μ»΄ν¬λνΈ
- PascalCase
UserController,UserService
- PascalCase
- λ©μλ / λ³μ
- camelCase
getUserProfile(),userId
- camelCase
- μμ
- UPPER_SNAKE_CASE
MAX_TOKEN_EXPIRE_TIME
- UPPER_SNAKE_CASE
- Entity: λ¨μν
- Table: 볡μν
- API Path: kebab-case
- DTOλ
recordμ¬μ© λ° ν νμΌμ νλλ§ μ μΈ - Repositoryλ
Optional<T>λ°ν, Service κ³μΈ΅μμ nullμ΄λ©΄ μ¦μ μμΈ μ²λ¦¬ - Service ν΄λμ€ μ΅μλ¨μ
@Transactional
{
"isSuccess": true,
"code": "AREUMDAP_200",
"message": "μ±κ³΅μ
λλ€.",
"data": {}
}@RestControllerAdviceμ¬μ©- λͺ¨λ 컀μ€ν
μμΈλ
BaseStatusκΈ°λ°μΌλ‘ μ μ - HTTP Status λͺ νν ꡬλΆνμ¬ λ°ν
- λ€μ΄λ°μ΄ μ§κ΄μ μΈκ°
- κ° ν΄λμ€μ λ©μλμ μ± μμ΄ λͺ ννκ°
- μ€λ³΅ μ½λκ° μλκ°
- 컨벀μ μ΄ μ§μΌμ‘λκ°
- 리ν©ν λ§ μ¬μ§κ° μλκ°