4. 개념 파헤치기 어떻게 숨어있는 개념을 캐치할까? 팀에서 사용하는 언어 찝찝한 설계 모순된 요구사항 전문가의 의견 검토 도메인 관련 문서 조사 실험 4
5. 개념 파헤치기 언어에 귀를 귀울여라 어색한 부분을 조사하라 모순점에 대해 깊이 고민하라 시도하고 또 시도하라 5
6. 언어에 귀를 귀울여라 모델을 발전시키는 것들 도메인 전문가가 언급한 새로운 단어 전문가가 교정해 주는 단어, 개념들 특정 문구를 언급시 도메인 전문가의 당혹스러운 표정? 6
7. 어색한 부분을 조사하라 어색한 설계의 정의 말로 표현하기 힘들정도로복잡한 작업을 하는 프로시저 새로운 요구사항으로 안한복잡도 증가 도메인 전문가의 역할 누락된 개념, 부자연스러운 흐름 발견 아이디어 검증 개발자의 역할 도메인 전문가가 해당 역할을 잘 수행하도록 돕는 것 7
8. 모순점에 대해 깊이 고민하라 모순의 발생 원인 용어를 다르게 사용 도메인 이해 부족 실제로 다양한 관점 심층 모델을 발전시키는 중요한 단서 8
9. 일반적으로…. 모순은 그렇게 흥미롭지도 않고 심오한 내용도 없더라. 모든 모순을 해결하는 것은 비현실적, 바람직하지 않다. 그러나, 심사숙고하면서 숨겨져 있던 사실을 밝히는 계기가 된다. 9
21. SPECIFICATION? 객체 안의 “평가 로직들”을 Specification객체로 분리 Specification 객체의 특징 평가하는 객체 Value object 다양한평가 객체들을 FACTORY를 통해 생성 가능 PATTERN임. 21
22. SPECIFICATION 의 적용과 구현 SPECIFICATION PATTERN 사용용도 검증( validation ) 선택( selection ) 요청 구축( building to order ) 패턴 22
23.
24. SPECIFICATION의 적용과 구현선택( or 질의 ) 특정 조건 기반으로 객체 컬렉션 일부를 선택 예, “체납된 송장을 보유한 모든 고객 목록 나열” DB를 통한 접근 SQL쿼리는 도메인 계층에만 존재 REPOSITORY, DOUBLE DISPATCH 패턴 사용 24