Back-End33 [DDD] 도메인 주도 개발 시작하기_Ch7 Chapter 7 도메인 서비스 7.1 여러 애그리거트가 필요한 기능 ∘ 여러 개의 애그리거트가 필요한 경우가 있음 ex. 결제 금액 계산 로직의 경우 상품, 주문, 할인 쿠폰, 회원 애그리거트가 필요함 ∘ 복잡하다고 기능과 관련 없는 구성 요소가 있는 애그리거트에 기능을 넣으면 안 됨 ∘ 애그리거트가 자신의 책임 범위를 넘어서는 기능을 구현하게 되면 외부에 대한 의존이 높아지고 코드 수정이 어려워짐 ∘ 애그리거트가 여러 개 있을 때 기능을 어디에 구현할지에 대한 문제가 생기면 도메인 기능을 별도 서비스로 구현하면 됨 7.2 도메인 서비스 ∘ 도메인 서비스는 도메인 영역에 위치한 도메인 로직을 표현할 때 사용 7.2.1 계산 로직과 도메인 서비스 ∘ 특정 애그리거트에 넣기 어려운 도메인 개념은 도메인 서.. 2023. 4. 2. [DDD] 도메인 주도 개발 시작하기_Ch6 https://www.notion.so/sssoyeon/Chapter-6-2c669842d363400e84e2eb841c3ff4f9 2023. 3. 23. [DDD] 도메인 주도 개발 시작하기_Ch5 Chapter 5 스프링 데이터 JPA를 이용한 조회 기능 5.1 시작에 앞서 ∘ CQRS : 명령 모델과 조회 모델을 분리하는 패턴 ∘ 명령 모델 : 상태를 변경하는 기능 구현 ∘ 조회 모델 : 데이터를 조회하는 기능 ∘ 앞 부분에서 봤던 도메인 모델은 명령 모델로 주로 사용됨 ∘ 정렬, 페이징, 검색 조건 지정과 같은 기능은 주문 목록, 상품 상세와 같은 조회 기능에 사용됨 5.2 검색을 위한 스펙 ∘ 검색 조건의 조합마다 find를 정의하는 것은 좋지 않음 ∘ 스펙 : 검색 조건을 다양하게 조합할 때 사용, 애그리거트가 특정 조건을 충족하는지를 검사할 때 사용하는 인터페이스 ∘ 스펙을 리포지터리에 사용하는지, DAO에 사용하는지에 따라 검사 대상이 되는 객체가 다름 ∘ isSatisfiedBy() .. 2023. 3. 23. [DDD] 도메인 주도 개발 시작하기_Ch4 Chapter 4 리포지터리와 모델 구현 4.1 JPA를 이용한 리포지터리 구현 ∘ 자바의 ORM 표준인 JPA를 이용해서 리포지터리와 애그리거트를 구현하는 방법 4.1.1 모듈 위치 ∘ 리포지터리 인터페이스는 애그리거트와 같이 도메인 영역에 속함 ∘ 리포지터리를 구현한 클래스는 인프라스트럭처 영역에 속함 4.1.2 리포지터리 기본 기능 구현 ∘ 리포지터리가 제공하는 기본 기능 - ID로 애그리거트 조회하기 : findBy프로퍼티이름(프로퍼티 값) - 애그리거트 저장하기 : save() ∘ JPA는 트랙잭션 범위에서 변경한 데이터를 자동으로 DB에 반영 ∘ 애그리거트를 삭제하는 기능을 만들 수 있음 4.2 스프링 데이터 JPA를 이용한 리포지터리 구현 ∘ 스프링 데이터 JPA는 지정한 규칙에 맞게 리포지.. 2023. 3. 17. [DDD] 도메인 주도 개발 시작하기_Ch3 Chapter 3 애그리거트 3.1 애그리거트 ∘ 상위 수준에서 모델을 정리한 것이 관계를 이해하기 더 쉬움 ∘ ERD : Entity Relationship Diagram ∘ 후에 코드 변경을 하기 위해서는 도메인 모델의 관계 파악이 바탕이 되어야 함 ∘ 애그리거트 : 모델을 상위 수준에서 볼 수 있는 방법. 관련된 객체를 군으로 묶음. ∘ 한 애그리거트에 속한 객체는 유사하거나 동일한 라이프 사이클을 가짐 ∘ 한 각체는 하나의 애그리거트에만 속할 수 있음 ∘ 도메인 규칙과 요구사항에 따가 경계 설정 3.2 애그리거트 루트 ∘ 애그리거트의 루트 엔티티 : 애그리거트에 속한 모든 객체가 일관된 상태를 유지하도록 애그리거트 전체를 관리 3.2.1 도메인 규칙과 일관성 ∘ 애그리거트 루트는 애그리거트의 일관.. 2023. 3. 17. [DDD] 도메인 주도 개발 시작하기_Ch2 Chapter 2 아키텍처 개요 2.1 네 개의 영역 ∘ 아키텍처를 설계할 때 표현, 응용, 도메인, 인프라스트럭처가 필요 - 표현 영역(UI 영역) : 사용자의 요청을 받아 응용 영역에 전달함, 응용 영역의 처리 결과를 사용자에게 보여줌 - 응용 영역 : 시스템이 사용자에게 제공해야 할 기능을 구현함, 도메인 영역의 도메인 모델 사용 - 도메인 영역 : 도메인 모델을 구현함 - 인프라스트럭터 영역 : 기술의 실제 구현 2.2 계층 구조 아키텍처 ∘ 계층 구조의 아키텍처가 많이 사용됨. 계층 구조에서는 상위 계층에서 하위 계층으로의 의존만 존재하고 하위 계층은 상위 계층에 의존하지 않음 ∘ 인프라스트럭처에 의존하면 ’많은 것을 만들고 나서야 테스트를 해볼 수 있다는 어려움‘, ’기능 확장의 어려움‘이 발.. 2023. 3. 11. [DDD] 도메인 주도 개발 시작하기_Ch1 Chapter 1 도메인 모델 시작하기 1.1 도메인이란? ∘ 도메인 : 소프트웨어로 해결하고자 하는 문제 영역 ∘ 한 도메인은 하위 도메인으로 나눌 수 있음 ∘ 한 하위 도메인은 다른 하위 도메인과 연동해서 완전한 기능 제공 ∘ 소프트웨어가 도메인의 모든 기능을 제공하는 것은 아님. 외부 시스템과 기능 연동해서 제공하기도 함. ∘ 상황을 고려해서 하위 도메인이 구성됨 1.2 도메인 전문가와 개발자 간 지식 공유 ∘ 개발자가 기능 구현을 위해 코드를 작성할 때 맨 첫 단계는 요구사항 분석 ∘ 요구사항을 올바르게 이해하기 위해서 개발자는 전문가와 직접 대화해야 함 1.3 도메인 모델 ∘ 도메인 모델 : 특정 도메인을 개념적으로 표현한 것. 도메인 자체를 이해하기 위한 개념 모델. ∘ 개념 모델인 도메인 모.. 2023. 3. 11. JAVA 프로그래밍 및 실습 2주차 자바의 특성 ∘ 플랫폼 독립성 -플랫폼이 독립적, WORA -자바 가상 기계는 플랫폼에 종속적으로 들어감 -하드웨어, 운영체제에 종속되지 않는 바이트 코드로 플랫폼 독립성 ∘ 객체 지향 -캡슐화, 상속, 다형성 지원 ∘ 클래스로 캡슐화 -자바의 모든 변수나 함수는 클래스 내에 선언 -클래스 안에서 클래스(내부 클래스) 작성 가능 ∘ 소스(.java)와 클래스(.class) 파일 -클래스 단위로 계속 작업함 -소스 파일을 컴파일해서 빌드하면 .class 파일로 최종적으로 생성됨 -하나의 소스 파일에 여러 클래스 작성 가능 -public 클래스는 하나만 가능 -소스 파일의 이름과 public으로 선언된 클래스 이름은 같아야 함 -클래스 파일에는 하나의 클래스만 존재 ∘ 클래스 단위로 만들어진 4개의 클래스를.. 2022. 4. 5. 이전 1 2 3 4 5 다음