확장성과 유지보수성이 좋은 애프리케이션의 구조는 다음과 같다.
1. Domain 레이어:
도메인 레이어는 애플리케이션의 핵심 로직을 담당하는 레이어다. 게시물, 댓글, 사용자 등의 도메인 모델을 구현하고, 비즈니스 로직을 처리한다. 이 레이어에서는 R2DBC를 사용하여 데이터베이스와 연동한다
2. Repository 레이어:
리포지토리 레이어는 데이터베이스와의 상호작용을 담당하는 레이어다. 도메인 레이어에서 사용하는 데이터를 저장, 검색, 삭제 등의 CRUD 작업을 처리한다. 이 레이어에서는 Spring Data R2DBC를 사용한다.
3. Service 레이어:
서비스 레이어는 비즈니스 로직을 처리하는 레이어다. 도메인 레이어와 리포지토리 레이어를 조합하여, 애플리케이션의 기능을 제공한다
4. Web 레이어:
웹 레이어는 사용자의 요청을 처리하는 레이어다. 요청에 대한 처리 후, 도메인 레이어와 서비스 레이어를 이용하여, 응답을 생성한다. 이 레이어에서는 스프링 웹플럭스를 사용한다.
4. Security 레이어:
보안 레이어는 애플리케이션의 보안을 담당하는 레이어다. 인증, 인가, 접근 제어 등의 기능을 처리한다.
5. Configuration 레이어:
컨피규레이션 레이어는 스프링 웹플럭스와 관련된 설정을 담당하는 레이어다. 예를 들어, 라우터, 핸들러, 필터 등의 설정을 처리한다.
6. Test 레이어:
테스트 레이어는 단위 테스트, 통합 테스트, E2E 테스트 등의 테스트를 담당하는 레이어다. 이 레이어에서는 JUnit, Mockito, WebTestClient 등의 테스트 프레임워크를 사용한다.
이렇게 레이어를 분리해서 개발하면 개발자들 간의 협업이 원할해진다 !
'웹개발 > 설계' 카테고리의 다른 글
JPA로 페이징된 계층형 댓글 로직 구현에 대해 (0) | 2024.03.07 |
---|---|
JPA DTO & Entity란? (0) | 2022.08.02 |
웹개발 CRUD 작업 시 팁 (0) | 2022.08.02 |