Gradle, SrpingBoot, Multi Module) Finance API 코드 구조 (v.1.0.0)

ok0·2022년 12월 1일
0

예금 적금 트래킹

목록 보기
2/7
post-thumbnail

v.1.0.0

  • Major 버전 업
    • Root Module 설계 변경
    • Parent Module의 신규 생성
    • Sub Modules의 컨셉 변경
  • Minor 버전 업
    • last depth 모듈 생성 등.

컨셉

  • 하나의 Git Repository는 하나의 도메인만 소유한다.
    • ex) User Domain, Finanace Domain
  • Layer간의 책임과 경계를 명확히 한다.
  • '모듈'은 경계를 넘나들며 참조 하지 말 것. 절대 !
  • 코드의 붕괴는 명확한 경계가 무너질 때 나타난다.

Layer 설명

Root Module

  • Logger, Log Filter 등.
  • Repository 전반에 영향을 끼치는 코드 덩어리.
  • 단, 비즈니스 로직에 절대 관여해선 안되며, 특정 Layer에 종속되어도 안된다.

Data layer

  • Persistent Layer와 동일.
  • JPA Entity, Repository, Trasaction, DataSource Configuration 등.
  • 데이터 명세와 DML에 대한 책임 명시.
  • 단, 비즈니스 로직에 절대 관여해선 안됨. 오로지 데이터 명세에 대한 책임.
  • 비즈니스 로직은 각 레이어의 Service Layer를 구성하여 처리

Job Layer

  • 메시지 채널이 운영되는 레이어.
  • 클라이언트의 입장으로서 서버의 데이터를 상시 동기화. (Spring Integration)
  • 향후, 사용자들에게 알람을 보내기 위한 Sub Module 신설 예정.

Http Layer

  • Presentation 영역에 대한 책임.
  • 서버의 입장에서 클라이언트(Facade Layer or Other Domain)에 데이터 리턴.
  • 대부분의 비즈니스 로직은 Job Layer에 두고 싶은데.. 차후에 어떻게 될런지 ?
profile
백엔드 개발자.

0개의 댓글