확장성 있는 아키텍처 고려사항

application: 구현체의 집합

  1. commonRepository: 공용으로 쓰일수 밖에 없는 레포지토리 모음
    1. 예) 유저
  2. domainName: 다른 도메인에 의존하지 않는 독립적인 기능의 집합
    1. controller: 외부 요청을 받아 결과값을 반환 하는 계층
    2. dto: 계층간 이동을 위한 데이터 타입
      1. request: 요청 데이터 타입
      2. response: 반환 데이터 타입
    3. repository: 다른 도메인에 노출될 필요가없는 레포지토리
    4. usecase: 의존성 결합 계층 & 서비스 호출 담당 → Facade
      1. 예) 파일에 “A” 라는 단어 쓰고 저장
      2. service: 비즈니스 로직 구현체
        1. 예) 파일 열기, 파일 읽기, 파일 쓰기, 파일 저장

config: 전역적으로 쓰이는 설정값

domain: 순수 자바 or 코틀린 으로 구성된 도메인

  1. common: 공용으로 쓰이는 엔티티 혹은 데이터 타입의 집합
  2. domainName: 다른 도메인에 의존하지 않는 독립적인 기능의 집합
    1. enums
    2. vo: 외부 계층이 아닌 같은 계층 끼리의 데이터 교환 타입 → 값 검증 수행
    3. module: 비즈니스 로직 추상화 계층

infra: 외부 서비스 or 프레임워크 에 의존하는 구현체의 집합

utils: 공용으로 쓰이는 유틸리티

개발 고려사항

차후 고려사항