본문 바로가기

programming29

[DDD] 3장 애그리거트 상위 수준 개념을 이용해서 전체 모델을 정리하면 전반적인 관계를 이해하는 데 도움이 된다 아래 그림을 보면 주문은 회원, 상품, 결제와 관련이 있다는 것을 쉽게 파악할 수 있다 상위 수준 모델을 개별 객체 단위로 다시 그려보자 개념을 파악하기에 더 오랜 시간이 걸리고, 더 많은 코드를 보고 도메인 전문가와 더 많은 대화를 나눠야 비로소 상위 수준에서 모델 간의 관계가 이해되기 시작한다 주요 도베인 요소 간의 관계를 파악하기 어렵다는 것은 코드를 변경하고 확장하는 것이 어려워진다는 것을 의미한다 상위 수준에서 모델이 어떻게 엮여 있는지 알아야 전체 모델을 망가뜨리지 않으면서 추가 요구사항을 모델에 반영할 수 있는데, 세부적인 모델만 이해한 상태로는 코드를 수정하는 것이 꺼려지기 때문에 코드 변경을 최대한 .. 2022. 12. 10.
[DDD] 2장 아키텍처 개요 네 개의 영역 표현, 응용, 도메인, 인프라스트럭처는 아키텍처를 설계할 때 출현하는 전형적인 네 가지 영역이다 표현 영역 네 영역 중 표현(또는 UI영역)은 사용자의 요청을 받아 응용 영역에 전달하고, 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할을 한다 스프링 MVC 프레임워크가 표현 영역을 위한 기술이다, 표현 영역의 사용자는 웹 브라우저 이용자일 수 있고, REST API를 호출하는 외부 시스템일 수 있다 HTTP 요청을 응용 영역이 필요로 하는 형식으로 변환하여 응용 영역에 전달하고 응용 영역의 응답을 HTTP 응답으로 변환하여 전송한다 예를 들어 웹 브라우저가 보낸 HTTP 요청을 응용 영역이 필요로 하는 형식의 객체 타입으로 변환하고, 응용 영역이 리턴한 결과를 JSON 형식으로 변환.. 2022. 11. 21.
DDD-Light NHN-DDD-Lite@Spring CONTENTS 복잡성과 위키 지식 탐구 구현 https://www.youtube.com/watch?v=TdyOH1xZpT8 복잡성과 위키 기술은 항상 발전하는데 중요한게 뭘까? 왜 복잡해질까? 애플리케이션이 엄청 복잡하기 때문 도메인 자체에 대한 복잡성 사용하는 기술과 도구에 대한 복잡성 위기 일정 driven development ㅋㅋㅋㅋ 빠르고 간단하게 구축 → 오픈하면 새로운 요구사항 → 복잡성 증가 → 가파른 비용 증가, 급격한 생산성 감소 → 위기 → 차세대 개편(개편하면서도 레거시 의존) + 레거시 의존 → 빠르고 간단하게 구축 결국 빠르고 간단하게 맞지 않는 접근법으로 구축하니 문제이다 애플리케이션은 시간이 지날수록 복잡해지고 비용이 급격히 증가한다 → .. 2022. 10. 21.
[DynamoDB] cursor paging DynamoDB Query 조회 Query는 기본 키 값을 기반으로 항목을 찾습니다 파티션 키 속성의 이름과 해당 속성을 단일 값을 제공해야 하고, Query 는 해당 파티션 키 값을 갖는 모든 항목을 반환합니다 선택적으로 정렬 키 속성을 제공하고 비교 연산자를 사용하여 검색 결과를 구체화할 수 있습니다 KeyConditionExpression 을 이용하여 파티션 키의 값을 구체화할 수 있습니다 dynamoDB Client의 query 조회의 반환값은 아래의 4가지 속성을 반환합니다 만약 더 이상 조회할 item이 없다면 LastEvaluatedKey는 반환하지 않습니다. DocumentClient.queryOutput?? { Items Count ScannedCount LastEvaluatedKey? .. 2022. 10. 13.