도메인 3

응용 서비스는 어떻게 구현해야 하는가

📌 들어가며 이번 포스팅에서는 응용 서비스를 구현할때 항상 절대적일 순 없지만 따르면 좋은 구현 방식에 대해서 포스팅하고자 합니다. API를 개발할 수록 이 기능에 대한 로직은 어디에 있어야 할까? 혹은 응용 서비스가 이렇게 길어지는게 맞나...? 자주 고민하게 됩니다. 물론 도메인의 상황, 팀별 규칙에 따라 달라질 순 있겠지만 통상적인 구현 방식에 대해 정리해 보고자 합니다. 📌 응용 서비스란 응용 서비스는 표현 영역과 함께 사용자와 도메인을 연결해주는 매개체 역할을 합니다. 표현 영역이 사용자로부터 URL, 요청 파라미터, 쿠키, 헤더 등을 이용해서 사용자가 어떤 기능을 실행하기를 원하는지 판별하고 근 기능을 제공하는 응용 서비스를 실행하게 됩니다. 응용 서비스는 실행하는데 필요한 입력값을 메서드 파..

Architecture 2023.03.25

CQRS 란 무엇인가

📌 들어가며 현재 개발 중인 쿠폰 도메인에는 CQRS 패턴이 구현되어 있습니다. 이러한 CQRS 패턴이 무엇인지에 대해 경력직 채용시 면접 질문으로 질문 했다는 얘기를 점심시간에 듣게 되었습니다. 그리하여 이번 포스팅을 통해 애매하게 알고 있던 개념을 정리하고자 합니다. 📌 CQRS 패턴을 사용하게 되는 이유 만약 주문 내역 조회 기능을 구현하게 된다면 여러 애그리거트에 접근하여 데이터를 조회해 와야 합니다. Order에서 주문정보를, Product 에서는 상품에 대한 정보를 Member에서는 회원 관련 정보를 불러와야 합니다. 그런데 조회 화면은 그 특성상 api 의 응답 속도가 빠를 수록 좋은데 이러한 상황에서는 한 번의 select 쿼리 조회로 필요한 데이터를 읽을 수 없어 조회 속도에 문제가 생길..

DDD란 무엇인가(2) - 도메인, 서브도메인, 바운디드 컨텍스트 등

DDD의 기본 개념에 대해 알아보았던 DDD란 무엇인가(1) 에 이어서 이번 글에서는 DDD에서 많이 사용하는 용어들에 대한 정리를 해보고자 합니다. 회사 프로젝트에서 타회사 AA(Application Architecture) 분들과 설계 단계에서 대화를 나눌 때 많이 접했던 용어들과 그분들이 설명해주셨던 대로 정리해보고자 합니다. 개인적으로 해당 부분은 개발자들의 영역이기보다는 비즈니스 정책을 정하는 현업분들(또는 기획자)의 의견이 필요한 영역이라고 생각합니다. 도메인 - 도메인은 외국 용어이기도 하고 딱히 해당 용어를 우리말로 번역할 만한 단어가 없는 것 같습니다. 도메인은 우리가 해결하고자 하는 문제 영역이라고 볼 수 있습니다. 그냥 '네이버', '쿠팡' 처럼 서비스 자체를 도메인이라고봐도 됩니다...

BackEnd/DDD 2022.12.04