[메인 리스트]는 게시물을 가장 큰 사이즈로 보여줍니다. 카테고리별 최신 글 노출, 특정 글 선택, 직접 입력 등 다양한 방식으로 여러분의 티스토리 첫화면을 꾸밀 수 있습니다.
리스트 : 콘텐츠가 있으면 최근 5건을 불러옵니다.
-
도메인 주도 설계 - 11. 분석 패턴의 적용디자인 패턴 2024.05.23 09:55
본 내용은 에릭 에반스의 도메인 주도 설계를 공부하면서 제 나름대로 이해하기 쉽게 정리한 글입니다.이해가 어려우시다면 댓글 부탁드립니다. 도메인 문제들을 관찰하면서 익숙한 책임이나 관계들이 발견되는데 이러한 익숙한 것들은 패턴 형식으로 기록되어 문제를 해결하는데 도움을 준다. 경험으로 축적되어 기록된 패턴을 사용하는 방식이 분석 패턴의 적용이다. 이 패턴은 특정 개념을 표현하는 객체를 사용해서 더 높은 수준에서 특화된 영역을 다룬다. 곧바로 사용할 수있는 해결책은 아니고 특정 도메인의 모델을 개발할 떄 유용한 지심서에 해당한다. 최상의 분석패턴은 과거의 프로젝트에서 유용한 경험을 전달하고 모델에 대한 통찰력을 제공한다.
-
도메인 주도 설계 - 10. 유연한 설계디자인 패턴 2024.05.10 10:50
본 내용은 에릭 에반스의 도메인 주도 설계를 공부하면서 제 나름대로 이해하기 쉽게 정리한 글입니다.이해가 어려우시다면 댓글 부탁드립니다.INTENTION-REVEALING INTERFACE(의도를 드러내는 인터페이스) 객체를 효과적으로 사용하는데 알아야할 정보를 구현 로직의 이해 필요없이 인터페이스로만 얻을 수 있게 설계한 인터페이스를 뜻한다. 컴포넌트의 구현 세부사항을 고려해야 한다면 캡슐의 가치는 사라진다. 설계에 포함된 모든 공개 요소가 조화를 이뤄 인터페이스를 구성하고 각 요소의 이름을 토대로 설계 의도를 드러낼수 있어야 한다. 오직 결과와 목적만을 표현하도록 클래스의 연산의 이름을 부여해야 한다. 이렇게하면 클라이언트 개발자가 내부를 이해할 필요성이 줄어든다. 그 의미를 쉽게 추측하기 위해 UB..
-
도메인 주도 설계 - 9. 암시적인 개념을 명확하게디자인 패턴 2024.05.02 09:35
본 내용은 에릭 에반스의 도메인 주도 설계를 공부하면서 제 나름대로 이해하기 쉽게 정리한 글입니다.이해가 어려우시다면 댓글 부탁드립니다. 개발자들이 토의 중에 단서를 얻거나 설계상 암시적으로 존재하는 개념을 인지하면 도메인 모델과 관련 코드를 대량으로 바꾸게 된다. 하나 이상의 객체와 객체간 관계를 활용해 모델 내에 해당 개념이 명확하게 표현된다. 암시적 개념을 명확한 개념으로 변환하는 작업 역시 심층 모델로의 도약에 해당된다.개념 파헤치기언어에 귀 기울여라 도메인 전문가가 사용하는 언어에 귀 기울여야 한다. 복잡하게 얽힌 개념들을 간결하게 표현하는 용어가 있거나 개발자가 사용하는 단어를 적절하게 고쳐주는 등이 모델에 기여하는 개념의 실마리가 된다. 하지만 이것이 "명사는 객체다" 라는 개념을 표현하는 ..
-
도메인 주도 설계 - 8. 도약디자인 패턴 2024.04.26 11:59
본 내용은 에릭 에반스의 도메인 주도 설계를 공부하면서 제 나름대로 이해하기 쉽게 정리한 글입니다.이해가 어려우시다면 댓글 부탁드립니다.심층 모델 기존 전통적인 방식의 객체 분석 방식은 요구사항 문서의 명사와 동사를 식별하고 명사는 초기 객체 이름, 동사는 메서드로 사용하는 것이다. 초보자를 가르치기에는 유용하지만, 실제 도메인 초기 모델은 얄팍한 지식에 기반을 둔 무의미한 모델인 경우가 대부분이다. 심층 모델(DEEP MODEL)이란 도메인의 피상적인 측면은 배제하고 도메인 전문가와 주요 관심사를 중심으로 도메인 지식을 알기 쉽게 표현한 것이다. 추상화를 의미하진 않는다.발견 과정 해결해야 하는 문제에 적합한 설계(심층 모델)를 만들려면 먼저 도메인 중심 개념을 담고 있는 모델을 확보해야 한다. 이는 ..
-
도메인 주도 설계 - 6. 도메인 객체의 생명주기(AGGREGATE, FACTORY, REPOSITORY)디자인 패턴 2024.04.24 09:44
본 내용은 에릭 에반스의 도메인 주도 설계를 공부하면서 제 나름대로 이해하기 쉽게 정리한 글입니다. 이해가 어려우시다면 댓글 부탁드립니다. AGGREGATE(집합체) AGGREGATE는 데이터 변경의 단위로 다루는 연관 객체의 묶음 개념이다. 복잡한 연관관계를 맺는 객체를 대상으로 일관성을 보장한다. 각 AGGREGATE에는 루트(root)와 경계(boundary)가 있고 루트는 단 하나만 존재하고 특정 ENTITY를 가리킨다. 경계안에 객체는 서로 참조 가능하다. 경계 바깥 객체(또 다른 AGGREGATE)는 루트만 참조 가능하다. 지역 식별성은 AGGREGATE내에서만 구분하면 된다. 예를 들어, 자동차는 전역 식별성을 가진 ENTITY이다. 네개의 바퀴는 식별할 수 있다면 지역 식별성을 가진다. 그..