728x90
반응형

아키텍처 3

DDD 표현 영역과 응용 영역

도메인을 제대로 만들지 못하면 요구사항을 충족하는 소프트웨어를 만들기란 힘들다는 것을 잘 알고있다. 도메인 영역은 기본 패시브로 잘 구현하되, 거기에 도메인에 활력을 불어넣어줄 표현영역, 응용영역도 잘 구현이 되어야 한다. 표현 영역 표현 영역은 사용자의 요청을 해석한다. 스프링으로 따져 생각해본다면 Controller로 생각하면 될 것 같다. DDD에서 말하는 패키지 구조로 보면 interfaces가 될 것이다. 표현 영역은 URL, 요청 파라미터, 쿠키, 헤더 등등을 이용해서 클라이언트에서 원하는 작업을 받아서 응용 영역에 처리를 위임시킨다. 응용 영역 응용 영역은 표현 영역의 요청을 받아 처리를 하는 Service로 생각해볼 수 있다. 표현 영역에서 전달 받은 데이터는 일단 신뢰할 수 없는 데이터이..

아키텍처 2022.08.11

DDD 도메인

도메인 도메인은 구현해야할 소프트웨어의 대상이다. 쇼핑몰을 생각해보면 쇼핑몰은 대상, 그리고 상품조회, 주문, 배송, 결제 등등이 하위 도메인이 된다. 그리고 도메인이라고 해서 고정된 하위 도메인이 존재하는건 아니다. 결제같은것을 PG사에 위임하니까 말이다. 도메인 모델 패턴 기존의 나는 흔히 말하는 MVC 레이어 아키텍처를 사용했다. 이미지 출처 바로가기 단순히 Controller, Service, Repository세개를 사용해서 구현했었다. 이것은 내가 넥스트스텝에서 TDD와 클린 코드를 수강했어도 변하지 못했다. 근데 이 방식이 아니라 DDD책을 보면서 주워들었던 도메인 모델 패턴을 봤다. 그래도 말만 바뀌었지 느낌은 전과 같았다. 의존은 화살표 방향으로 주입이 된다. Presentation 사용..

아키텍처 2022.08.11

Monolithic vs MSA

모놀리식과 MSA에 대해 차이를 정리해 보겠다. MSA가 등장하기 이전에 하나의 서비스로 하나의 애플리케이션을 만드는 것. 이게 바로 Monolithic Architecture(모놀리식 아키텍처) 라고 한다. MSA는 Micro Service Architecture 의 줄임말로 하나의 큰 애플리케이션을 작은 애플리케이션으로 나눠서 만드는 아키텍쳐이다. Monolithic Architecture 사전적 정의를 보면 단단이 짜여 하나로 되어있는 이라는 뜻으로 나와있다. 그렇기에 이 애플리케이션의 규모는 거대하다. 장점 로컬 환경에서의 개발 편리성 통합 시나리오 테스트 용이 배포 간단 단점 코드의 수정 및 추가가 힘들다 효율적 자원관리가 힘들다 자주 업데이트 불가능 신기술 적용의 힘듦 부분적인 서버의 장애 -..

아키텍처 2022.08.10
728x90
반응형