Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

DDD 그게 뭔데 (개념 찍먹편) Slide 1 DDD 그게 뭔데 (개념 찍먹편) Slide 2 DDD 그게 뭔데 (개념 찍먹편) Slide 3 DDD 그게 뭔데 (개념 찍먹편) Slide 4 DDD 그게 뭔데 (개념 찍먹편) Slide 5 DDD 그게 뭔데 (개념 찍먹편) Slide 6 DDD 그게 뭔데 (개념 찍먹편) Slide 7 DDD 그게 뭔데 (개념 찍먹편) Slide 8 DDD 그게 뭔데 (개념 찍먹편) Slide 9 DDD 그게 뭔데 (개념 찍먹편) Slide 10 DDD 그게 뭔데 (개념 찍먹편) Slide 11 DDD 그게 뭔데 (개념 찍먹편) Slide 12 DDD 그게 뭔데 (개념 찍먹편) Slide 13 DDD 그게 뭔데 (개념 찍먹편) Slide 14 DDD 그게 뭔데 (개념 찍먹편) Slide 15 DDD 그게 뭔데 (개념 찍먹편) Slide 16 DDD 그게 뭔데 (개념 찍먹편) Slide 17 DDD 그게 뭔데 (개념 찍먹편) Slide 18 DDD 그게 뭔데 (개념 찍먹편) Slide 19 DDD 그게 뭔데 (개념 찍먹편) Slide 20 DDD 그게 뭔데 (개념 찍먹편) Slide 21 DDD 그게 뭔데 (개념 찍먹편) Slide 22 DDD 그게 뭔데 (개념 찍먹편) Slide 23 DDD 그게 뭔데 (개념 찍먹편) Slide 24 DDD 그게 뭔데 (개념 찍먹편) Slide 25
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

DDD 그게 뭔데 (개념 찍먹편)

Download to read offline

왜 DDD를 사용하는지, DDD에서 Domain Layer에 주요 요소 중 일부 개념에 대해서 설명합니다. 다음 2편에서는 좀 더 깊은 내용을 다룰 예정입니다.

<피드백은 언제나 환영입니다>

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

DDD 그게 뭔데 (개념 찍먹편)

  1. 1. DDD 그게 뭔데 (DDD 개념 찍어 먹어보기 편) 고명석 a.k.a R.bert Ko
  2. 2. 자기 소개 • Incheon Dev‘s 커뮤니티 운영 중 • 현재 Mondrian AI Backend / Infra Engineer • 종합 4년차 개발자 • WPF를 이용한 Vision Machine 개발 1년 4개월 • 웹 프런트 개발 1년 1개월 • 웹 백엔드 개발 / 인프라 1년
  3. 3. 제 인생 목표는 토발즈, 밥 형 보다 유명해지기, 하루에 발렌타인 30년산 한 잔씩 마시는 삶
  4. 4. 그 중에 밥아저씨… Uncle Bob은 누구?
  5. 5. 깔끔한거 좋아하는 아저씨 Robert C. Martin a.k.a “Uncle bob” Martin • 클린 코드 • 클린 코더 • 클린 아키텍처 • 클린 애자일
  6. 6. 저희가 봐야할 건 여기 밑에 있는 클린 아키텍처입니다. 물론 나머지 책들도 명서이니 읽어보시죠
  7. 7. • 프레임워크의 독립적 • 테스트 용이 • UI 독립적, Database 독립적 • 외부 기능 독립적 을 목적으로 밥 삼촌이 내세운 아키텍처인데, 한마디로 의존성(관심사) 분리가 목적이며 대부분의 아키텍처들도 마찬가지! 클린 아키텍처는
  8. 8. • 클린 아키텍처 • DDD • Hexagonal (Ports & Adapters) • Onion 등 다양한 아키텍처를 참고해서 구조가 잡혀있습니다. 현재 몬드리안에이아이에서는
  9. 9. DDD에 대해서 말한다더니… 클린 아키텍처말고 DDD는 뭐죠?
  10. 10. DDD는 Domain Driven Design, 즉 도메인 주도 설계의 약자입니다.
  11. 11. DDD도 클린 아키텍처와 같은 목표를 갖고있는 아키텍처입니다. (그래서 클린 아키텍처를 서두로 시작했던 것이죠…!)
  12. 12. 도메인…? blahblah.com 이런건가요…?
  13. 13. Domain은 저희가 아는 그런 IPv4, IPv6를 이해하기 쉽게 만든 그런 녀석이 아닙니다. DDD에서의 Domain은 소프트웨어로 해결하고자 하는 영역을 말합니다
  14. 14. Post Views Comment Likes 게시판을 예로 들면 도메인은 다음과 같을 수 있습니다. Post라는 도메인을 루트로, 하위에 Views, Comment, Likes 등과 같은 Domain Model들을 구성 할 수 있죠. 물론 Views, Comment, Like에도 하위 Domain Model들을 구성할 수 있습니다.
  15. 15. DDD에는 다음과 같은 layer들로 구성이 되어있습니다. User Interface (Presenter) Application Domain Infrastructure 사용자로부터 요청을 받아서 하위 레이어 전달 및 반환. Domain 모델을 이용하여 기능 구현. Business logic은 Domain에서 구현한다. Domain에 대한 핵심 Business 객체의 state 및 logic 제공 구현 기술에 대한 영속성 구현
  16. 16. 이번 시간에는, Domain Layer에 대해서 집중적으로 알아볼겁니다…!!
  17. 17. Domain Layer에는 • Entity • Value • Aggregate • Repository • Domain Service 그리고 다음과 같은 요소들이 있습니다.
  18. 18. Entity • 식별자가 존재하며, 식별자를 제외한 나머지 값들은 변경가능한 (mutable) 오브젝트 • 해당 영역의 business logic 구현을 담당 • id값 외에 다른 값들이 같아도 같은 인스턴스가 아님! • ex) Post, Comment Domain Layer에는 Value • 식별자는 존재하지 않으나, 값들이 불변인 오브젝트 • 개념적으로 완전한 하나를 표현할 때 사용 • 오브젝트의 모든 값이 같으면 서로 같은 인스턴스! • Entity나 또 다른 VO의 속성으로서 사용된다 • ex) Views, Likes
  19. 19. 예를 들어, Post { id: 2, title: “Post”, context: “Hello~” , views: Views(8) } Post { id: 1, title: “Post”, context: “Hello~” , views: Views(3) } Entity Post { id: 1, title: “Post2”, context: “Hello…” , views: Views(5) } Post { id: 1, title: “Post”, context: “Hello~”, views: Views(3) } Entity
  20. 20. 예를 들어, Views { count: 3 } Views { count: 3 } VO Views { count: 4 } Views { count: 3 } VO
  21. 21. • 애그리거트에 속한 모든 객체의 일관성 유지를 위해, 애그리거트에 대표하는 Entity를 애그리거트 루트로 갖고 있는다. • 복잡한 도메인을 단순한 구조로 만들어준다 • 한 애그리거트에 속한 객체는 다른 애그리거트에 속할 수 없다 • 서로 다른 애그리거트는 서로를 관리 할 수 없다 Aggregate는? 수많은 Domain Model들의 복잡성을 줄이기 위해 상위 수준으로 묶은 군집입니다.
  22. 22. Aggregate는? Post <Root> Post Views Likes Comment <Root> Comment User <Root> User
  23. 23. 다음에 이어서 배울 내용은? • DIP (Denpendency Inversion Principle)과 Infrastructure Layer, Repository • Business Logic 구현 예제 • Domain Service • Aggregate간 Transaction 관리 • Bounded Context
  24. 24. 감사합니다!
  25. 25. 참고: • http://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html • https://k-elon.tistory.com/38

왜 DDD를 사용하는지, DDD에서 Domain Layer에 주요 요소 중 일부 개념에 대해서 설명합니다. 다음 2편에서는 좀 더 깊은 내용을 다룰 예정입니다. <피드백은 언제나 환영입니다>

Views

Total views

186

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×