[TIL] DDD 기본

yujeongkwon·2023년 11월 5일
0

TIL

목록 보기
8/9

아니 도메인 로직? 서비스 로직? 응용 서비스? 뭐? ㅎ.. ㅇㅇㅇ이 뭔데 ㅠ ㅇ뭔쓉.. 한다. ㅇㅇㅇ공부. ㅇㅇㅇ

  • 도메인 : 소프트웨어로 해결하고자 하는 문제 영역 = 해결해야할 영역
    • 이뭔쌉 : 소웨공에서 요구사항 겁나 배웠잔 그 요구사항 그 잡채
    • 그 요구사항 = 도메인을 개념적으로 표현한 것 -> 도메인 모델
    • 도메인 주도 개발 = Domain Driven Design = DDD = ㅇㅇㅇ ㅋㅋ
    • 엔티티랑 같은 말인 줄 알았는데 살짝쿵 다름
      • 엔티티 : 구분 가능해야함 = 고유한 식별자 가져야함 = DB 패키징 역할
        ㄴ> user 이런 객체들 ㅇㅇㅇ
      • 이런 엔티티를 도메인 모델로 확장해서 봐도 크게 문제 없어서 비슷하게 쓰는 듯
  • 애그리거트 : 관련된 객체들을 모아 하나의 단위로 취급하는 개념
    • 객체간의 관계 정의
    • 논리적으로 관련된 객체들 그룹화
    • 즉, 여러개 객체를 묶어 하나의 큰 객체로 = 암튼 객체 엔티티라고 봐도 됨(내뇌피셜)
    • 이 친구는 아래의 도메인 서비스 이용 가능
      • 도메인 서비스를 애그리거트에 주입하는 것은 좋지 않음(@Autowired)
      • 애그리거트 내의 모든 매서드가 그 도메인 서비스를 사용하지 않으니까 굳이~ 넣지마
      • 응용 서비스에서 전달 받아서 사용
    • 우리가 아는 그 레파토리 그친구는 애그리거트 단위로 존재
      • user 많이 쓰자나 user = 애그리거트, user 안에 들어가는 객체들 이름~전화번호~사용자가 속한 직급~ 뭐 이런거 개네는 객체 ㅇㅇㅇ
  • 도메인 서비스
    • 애그리거트와의 가장 큰 차이점 : 상태가 없음 only 로직만 구현
      • ㄴ= 필요 정보만을 받아 비즈니스 로직 수행
    • 애그리거트의 상태 변경
    • 애그리거트의 상태 값 계산
    • 여러 애그리거트 사용해서 하나의 기능이 되는거지 ㅇㅇㅇ
    • 말은 서비스여도 전형적인 소프트웨어 아티텍처의 컨트롤러, 서비스, 도메인 등 패키지 구조에서 도메인 패키지에 들어감 ㅇㅇㅇ
  • 응용 서비스
    • 그 내~가 알고 너~가 알던 그 서비스 패키지에 들어가는 그 친구임
      • 컨트롤러와 도메인을 연결해주는 칭구칑구
    • 보통 레파지토리 접근하는 그 친구
    • 얘도 도메인 서비스 이용 가능 ㅇㅇㅇ
    • 응용 서비스가 도메인 서비스를 애그리거트에게 전달

[ ] 책 읽기 .. - 도메인 주도 개발 시작하기

profile
인생 살자.

0개의 댓글