대표사진
게으른독자
  1. IT 용어 정리

이미지

요즘 꽂혀있는 DDD에 대해 몇 자 적어보았읍니다. (^_?)







1. 도메인



소프트웨어를 구현할 때 해결하고자 하는 문제 영역





2. 객체지향



모든 데이터를 오브젝트로 취급함



하나하나의 부품을 모아 컴퓨터를 조립하는 것처럼 객체를 모아 하나의 프로그램 생성





3. 도메인 주도 설계(DDD) : 도메인을 서비스 별로 분리하라







기존 소프트웨어 설계 단계를 보면 도메인을 설정하고 도메인을 추상화하여 모델링을 합니다.



모델링을 보고 실체화하면 소프트웨어가 구현됩니다.



이 과정에는 도메인 전문가의 파트와 개발자의 파트가 나누어집니다.



도메인 전문가는 도메인~모델링까지의 과정을 수행하고, 개발자는 모델링~구현까지의 과정을 수행하게 되는데,



서로의 소통 방식이 다르기 때문에 처음 도메인 전문가가 기획한 모델링 의도와는 다른 소프트웨어로 구현되는 경우가 종종 있습니다.



이것을 예방하고자 나타난 개념이 바로 ‘DDD’입니다.





DDD는 도메인 모델의 적용 범위를 구현까지 확장시켜 도메인 지식을 구현 코드에 바로 적용하여 의사소통의 불일치를 예방하고



추후 유지 보수에도 효율적입니다.



⇒ 도메인 전문가와 개발자가 서로 이해할 수 있는 동일한 표현과 단어로 구성된 단일화된 언어체계(유비쿼터스 언어)를 구축하는 과정





또한 도메인 주도 설계를 활용하면 소프트웨어의 비즈니스 상 우선순위에 따라



서브 도메인으로 나눠서 관리할 수 있습니다.





* 도메인 주도 설계의 특징





  • 같은 객체(Object or Class)가 여러 개 존재할 수 있음 → 문맥에 따라 객체의 역할이 바뀐다(Bounded Context-도메인 영역의 경계)




  • 전략적 설계와 전술적 설계로 나누어짐





- 전략적 설계 : 유티쿼터스 언어를 통해 도메인 지식을 공유하고, 이를 기준으로 바운디드 컨텍스트로 정의한 후 컨텍스트 맵으로 정의하는 것



- 전술적 설계 : 전략적 설계에서 만들어진 바운디드 컨텍스트와 도메인으로 애그리거트 패턴, 엔티티와 값 객체, 레포지토리 등을 구성하는 것





도메인 주도 설계 기법이 정의된 것은 10년 전쯤이지만, 그동안 큰 관심을 못 받다가



최근 클라우드 환경으로 전환되기 시작하면서 클라우드 마이크로서비스 아키텍처에 적합한



애플리케이션 개발을 위한 설계 기법으로 다시 주목받고 있습니다.





 



4. 마이크로서비스(Micro Service)





 



하나의 애플리케이션을 작게 쪼개서 변경과 조합이 용이하도록 만든 아키텍처





모놀리식 아키텍처의 경우 서비스 규모가 커지면서 복잡도가 증가할수록 작은 서비스의 장애가 전체 서비스 장애로 확대될 수도 있고,



부분 서비스 변경에도 어려움이 많기 때문에 마이크로서비스가 등장하게 되었습니다.





  • 독립적인 단위의 서비스로 존재하기 때문에 변경이 용이




  • 하나의 서비를 변경할 때의 영향력이 적음




  • 개별 단위의 서비스 배포 가능




  • 배포 시 전체 서비스 중단 x




  • 전체 애플리케이션 스케일 아웃이 필요 없어서 불필요한 자원의 낭비를 줄일 수 있음









더 자세히 살펴보고 싶다면 도메인 주도 설계를 정의한 에릭에반스의 문서를



아래 링크로 다운로드해 볼 수 있습니다.



 Domain Driven Design Quickly



Domain Driven Design is a vision and approach for designing a domain model that reflects a deep understanding of the business domain. This book is a short, quickly-readable summary and introduction to the fundamentals of DDD; it does not introduce any new concepts; it attempts to concisely summarize...



www.infoq.com





참고



https://martinfowler.com/tags/domain%20driven%20design.html



https://huisam.tistory.com/entry/DDD



https://youtu.be/VIfNipL5KkU



https://aws.amazon.com/ko/microservices/



https://programmingpercy.tech/blog/how-to-domain-driven-design-ddd-golang/




좋아요
댓글
0
작성일
2023.04.26

댓글 0

빈 데이터 이미지

댓글이 없습니다.

첫 번째 댓글을 남겨보세요.

게으른독자님의 최신글

  1. 작성일
    2023.7.21

    좋아요
    댓글
    0
    작성일
    2023.7.21
    첨부된 사진
    20
  2. 작성일
    2023.4.24

    좋아요
    댓글
    0
    작성일
    2023.4.24
    첨부된 사진
    20
  3. 작성일
    2023.4.22

    좋아요
    댓글
    0
    작성일
    2023.4.22
    첨부된 사진
    20

사락 인기글

  1. 별명
    리뷰어클럽공식계정
    작성일
    2025.5.13
    좋아요
    댓글
    204
    작성일
    2025.5.13
    첨부된 사진
    첨부된 사진
    20
  2. 별명
    리뷰어클럽공식계정
    작성일
    2025.5.14
    좋아요
    댓글
    177
    작성일
    2025.5.14
    첨부된 사진
    첨부된 사진
    20
  3. 별명
    리뷰어클럽공식계정
    작성일
    2025.5.15
    좋아요
    댓글
    144
    작성일
    2025.5.15
    첨부된 사진
    첨부된 사진
    20
예스이십사 ㈜
사업자 정보