CQS

단계별로 성장하자!
1. 문제상황 Repository단에서 Command와 Query를 분리하여 책임을 분리함으로써 코드 응집도와 유지보수성을 높이고자 하였다. 이에 처음 시도했던 방법은 아래와 같다. Create, Update, Delete를 담당할 CommandableRepo Interface와 Read를 담당할 QueryableRepo Interface로 나누었다. 구현체는 CommandRepo, QueryRepo로 구현한다. 하지만, 문제가 생겼다. 어떠한 엔티티를 save해야 하는 상황을 가정할 때, 중복조회나 다른 조회 메서드를 이용해야 하는 상황이 주로 발생했다. 이럴때, Repository를 사용해야 하는 Service 계층에서 의존성이 너무나 많아지는 문제가 발생했다. 2. 문제해결 과정 1 - interf..
✢ 프로젝트에서 헥사고날 아키텍처를 적용하기로 했고, MSA 방식으로 각자 분리된 담당 서비스를 개발한다. 아무리 분리된 서비스라고 해도 처음에는 패키지 구조나 네이밍 컨벤션을 정해놓는 게 추후에 서로 코드리뷰할 때 편하고 여러 장점이 있는 것 같아서 미리 설계하였다. 1. 헥사고날 아키텍처 구조 에 대한 것은 이전 포스팅을 확인해주세요. 2023.07.06 - [👨‍👩‍👧‍👦 Project/📩 DevTalk] - 헥사고날(Hexagonal) 아키텍처를 공부해 보자 (with Layered, Clean Architecture) 2. 내가 생각한 패키지 구조 src.groupname ㄴ global ㄴ config ㄴ util ㄴ error ㄴ exception ㄴ handler ㄴ {애그리거트 이름} ㄴ..
DevPoong
'CQS' 태그의 글 목록