전체 글
-
2부 도메인 객체의 생명주기Domain Driven Design 2021. 4. 15. 00:53
이전 글 : 2021.04.05 - [Domain Driven Design] - 2부. 소프트웨어에서 표현되는 모델 : 모듈 (Module) 2부. 소프트웨어에서 표현되는 모델 : 모듈 (Module) 이전글 : 2021.03.28 - [Domain Driven Design] - 2부. 소프트웨어에서 표현되는 모델 : 서비스(Service) 2부. 소프트웨어에서 표현되는 모델 : 서비스(Service) [Domain Driven Design] - 2부. 소프트웨어에서.. sungman.tistory.com 지난번 모듈까지 다루며 연관관계, 엔티티, 값 객체, 서비스, 모듈을 통해 소프트웨어에서 표현되는 모델에 대해 알아보았다. 소프트웨어를 개발하면 이러한 객체 지향 시스템의 객체를 구성하는 데이터를 저장..
-
2부. 소프트웨어에서 표현되는 모델 : 모듈 (Module)Domain Driven Design 2021. 4. 5. 22:02
이전글 : 2021.03.28 - [Domain Driven Design] - 2부. 소프트웨어에서 표현되는 모델 : 서비스(Service) 2부. 소프트웨어에서 표현되는 모델 : 서비스(Service) [Domain Driven Design] - 2부. 소프트웨어에서 표현되는 모델 : 엔티티, 값 객체 (Entity, Value Object) 2부 모델 주도 설계의 기본 요소 - 표현 모델 (Entity, Value Object) 2021.03.15 - [Domain Driven Desi.. sungman.tistory.com 모듈(Module)은 엔티티, 값 객체(vo), 서비스 등의 패턴들보다 더 익히 들어봤을 것이다. 그만큼 널리 오랫동안 사용되는 패턴으로서, 소프트웨어 설계를 공부하며 모듈이나 ..
-
2부. 소프트웨어에서 표현되는 모델 : 서비스(Service)Domain Driven Design 2021. 3. 28. 21:15
[Domain Driven Design] - 2부. 소프트웨어에서 표현되는 모델 : 엔티티, 값 객체 (Entity, Value Object) 2부 모델 주도 설계의 기본 요소 - 표현 모델 (Entity, Value Object) 2021.03.15 - [Domain Driven Design] - 2부 모델 주도 설계의 기본 요소 - 표현 모델 (연관관계) 2부 모델 주도 설계의 기본 요소 - 표현 모델 (연관관계) 모델과 구현은 상세한 수준에서 연결돼야 한다. 객체 sungman.tistory.com 이전 글에서 표현 모델의 Entity와 Value Object에 대해 알아보았다. 이 둘은 도메인 모델을 표현하는 패턴이었고, 모델은 도메인에서의 개념과 규칙 등의 정보를 표현하는 것에 대해 책임을 갖는..
-
2부. 소프트웨어에서 표현되는 모델 : 엔티티, 값 객체 (Entity, Value Object)Domain Driven Design 2021. 3. 16. 15:09
[Domain Driven Design] - 2부. 소프트웨어에서 표현되는 모델 : 연관 관계(association) 2부 모델 주도 설계의 기본 요소 - 표현 모델 (연관관계) 모델과 구현은 상세한 수준에서 연결돼야 한다. 객체 간의 연관관계를 이해하고 묘사하는 것이 간단할 수 있지만 실제 구현하기에는 어려운 문제일 수 있다. 상세한 구현 결정은 Model-Driven-Design sungman.tistory.com 이전 글에서 모델 주도 설계가 실제 구현으로 연결 짓는 것이 어려운 일임을 말하고, 이를 쉽게 하기 위해 객체 간의 연관관계에 대해 설명하였다. 이어서 모델을 표현하는 패턴에 대해 알아보도록 하자 우선, 이번 글에서는 엔티티(Entity)와 Value Object(vo, 개인적으로 직역한 ..
-
2부. 소프트웨어에서 표현되는 모델 : 연관 관계(association)Domain Driven Design 2021. 3. 15. 02:09
이전 포스팅 : [Domain Driven Design] - 2부 모델 주도 설계의 기본 요소 2부 모델 주도 설계의 기본 요소 소프트웨어를 올바르게 구현하고 모델과의 밀접한 관계를 유지하려면 모델링과 설계의 우수한 실천법들을 적용해야 한다. 도메인 주도 설계 과정을 탄력성 있게 만드려면 잘 알려진 근본 원리 sungman.tistory.com 모델과 구현은 상세한 수준에서 연결돼야 한다. 객체 간의 연관관계를 이해하고 묘사하는 것이 간단할 수 있지만 실제 구현하기에는 어려운 문제일 수 있다. 상세한 구현 결정은 Model-Driven-Design을 실현하는데 엄청 중요하고, 연관관계가 토대가 된다. 책의 해당 장에서는 객체 간의 연관관계를 설계하고 합리적으로 구성하는 것에 대한 얘기로 시작하여, 모델을..
-
2부 모델 주도 설계의 기본 요소Domain Driven Design 2021. 3. 7. 21:18
소프트웨어를 올바르게 구현하고 모델과의 밀접한 관계를 유지하려면 모델링과 설계의 우수한 실천법들을 적용해야 한다. 도메인 주도 설계 과정을 탄력성 있게 만드려면 잘 알려진 근본 원리들이 Model-Driven Design을 어떻게 뒷받침 하는지 이해해야 한다. 우선 아래의 맵을 보고 Model-Driven Design을 뒷받침 하는 요소들을 알아보도록 한다. 도메인의 격리 시스템에서 도메인과 관련이 적은 기능으로부터 도메인 객체를 분리할 필요가 있다. 그렇게 해서 도메인 개념을 다른 소프트웨어 기술에만 관련된 개념과 혼동하거나, 시스템이라는 하나의 큰 덩어리 안에서 도메인을 바라보지 못하는 문제를 방지할 수 있다. 이러한 도메인 객체를 분리하는 정교한 기법에 대해 알아보자 계층형 아키텍처 Layered ..
-
1부 동작하는 도메인 모델 만들기(2) - 의사소통과 언어 사용Domain Driven Design 2021. 2. 27. 18:37
보편 언어 (Ubiquitous Language) 도메인 전문가는 자신의 업무 분야의 전문 용어를 다양하게 사용하지만, 개발에서 사용하는 기술적인 용어의 이해는 한계가 있다. 반대로 개발자는 기술적인 용어에 전문적이지만, 도메인 전문가들의 언어에 담긴 의미를 제대로 파악하기 힘들 수 있다. 때문에 프로젝트 구성원 간에 보편 언어를 사용하기 위해 의식적으로 노력을 기울이고 도메인 모델이 그러한 언어의 근간을 제공하도록 한다면 팀 내 의사소통에서 소프트웨어 구현에까지 연결할 수 있을 것이다. 보편 언어가 자리잡지 못한 프로젝트 공통 언어가 없는 프로젝트에서는 개발자와 도메인 전문가 간에 의사소통에서 자신의 언어를 번역해줘야 한다. (심지어 개발자 간의 의사소통에서도) 모델의 개념이 혼란스러워지며 해로운 리팩..
-
1부 동작하는 도메인 모델 만들기(1) - 지식 탐구Domain Driven Design 2021. 2. 16. 00:49
도메인과 모델이란? 도메인 사용자가 프로그램을 사용하는 대상 영역 모든 소프트웨어는 사용하는 사용자의 활동이나 관심사와 관련이 있음 모델 지식을 필요에 따라 단순화, 구조화, 추상화한 형태 개발팀은 사용자의 활동과 관련된 지식체계에 집중해야 하는데, 지식의 폭이 깊거나 많은 양, 복잡성에 압도될 수 있는데, 이러한 부담을 해소할 수 있는 도구이며, 적절한 모델을 통해 정보를 이해하고 문제 자체에 집중할 수 있게 해주는 역할을 함 도메인 주도 설계에서의 모델의 유용성 (?) 모델과 핵심 설계는 서로 영향을 주며 구체화된다. 모델은 모든 팀 구성원이 사용하는 언어의 중추이다. 모델은 지식의 정수만을 뽑아낸 것이다. 효과적으로 모델링하기 위한 요소 모델과 구현의 연계 간단한 프로토타입으로 모델과 소프트웨어의 ..