개요 # 참고 마이크로서비스 도입 이렇게 한다. (Monolith to Microservices) # 개요 MSA에 대해 이해하고, 모놀로식 아키텍처에서 마이크로서비스 아키텍처로 마이그레이션을 하며 고려해야할 지점에 대해 고민한다. 2장. 마이그레이션 계획하기 모놀리스 분해에서 핵심 기술 측면으로 뛰어들기는 매우 쉽다. 하지만 몇 가지 비기술적인 문제를 신중하게 탐색할 필요가 있다. 마이그레이션을 어디서 시작해야 할까? 변경을 어떻게 관리해야 할까? 다른 사람들을 어떻게 참여시킬까? 마이크로서비스를 처음부터 도입해야 할까? 2-1. 목표 이해하기 마이크로서비스는 목표가 아니다. MSA의 채택은 합리적인 의사결정에 기반한 의도적인 결정어야 한다. 마이크로서비스를 도입해서 달성하려는 목표는 시간을 들여 집중..
개요 # 참고 마이크로서비스 도입 이렇게 한다. (Monolith to Microservices) # 개요 MSA에 대해 이해하고, 모놀로식 아키텍처에서 마이크로서비스 아키텍처로 마이그레이션을 하며 고려해야할 지점에 대해 고민한다. 1장. 더도 덜도 아닌 딱 마이크로서비스 마이크로서비스로 작업하는 방법을 다루기 전에 마이크로서비스 아키텍처가 무엇인지에 대해 보편적인 이해를 공유하는 것이 중요하다. 1-1. 마이크로서비스란 무엇인가? 마이크로서비스란 비즈니스 도메인을 중심으로 모델링된 독립적으로 배포 가능한 서비스다. 마이크로서비스는 네트워크를 통해 서로 통신하며, 마이크로서비스 아키텍처는 여러분이 직면할 수 있는 문제를 해결하기 위한 여러 선택지를 제공한다. 따라서 마이크로서비스 아키텍처는 여러 협업 마..
개요 # 참고 IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음 # 개요 DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다. # 14장의 로드맵 사용자 인터페이스가 렌더링 할 수 있도록 도메인 모델의 데이터를 제공하는 방법 애플리케이션 서비스가 어떻게 구현되는지와 어떤 오퍼레이션을 수행하는지 애플리케이션 서비스와 출력 사이의 결합을 제거하는 방법과 클라이언트 타입을 구분하는 방법 사용자 인터페이스 안에 여러 모델을 구성해야 하는 이유와 구성하는 방법 인프라를 사용해 애플리케이션을 구현하는 기술적 방법 14장. 어플리케이션 도메인 모델은 대개 애플리케이션의 심장부에 있다. 애플리케이션에는 도..
개요 # 참고 IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음 # 개요 DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다. # 13장의 로드맵 분산 컴퓨팅 환경에서 시스템을 성공적으로 통합하는 방버ㅓㅂ 레스트풀 리소스를 사용한 통합 방식 메시징을 사용해 통합하는 방법 여러 바운디드 컨텍스트에 걸쳐서 정보를 복제하려고 할 때 겪을 수 있는 어려움 설계 접근법의 성숙도를 높이는 법 13장. 바운디드 컨텍스트의 통합 중요한 프로젝트라면 언제나 다수의 바운디드 컨텍스트가 있으며, 그 바운디드 컨텍스트 중 둘 이상은 반드시 통합해야 한다. 컨텍스트 맵을 사용해 바운디드 컨텍스트 사이에 존재하는 일..
개요 # 참고 IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음 # 개요 DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다. # 12장의 로드맵 두 가지 종류의 리파지토리가 무엇인지, 어떤 경우에 어떤 유형을 사용해야 하느지 하이버네이트, 탑링크, 로히어런스, 몽고DB를 위한 리파지토리를 어떻게 구현하는지 살펴보자 왜 리파지토리의 인터페이스상에 추가적인 행동이 필요한지 이해하자. 리파지토리를 사용할 때 트랜잭션이 어떻게 작용하는지 타입 계층구조를 위한 리파지토리를 설계할 때의 어려움에 익숙해지자 리파지토리와 데이터 액세스 객체 사이의 근본적인 차이점을 살펴보자. 12장. 리파지토리 리파지토..
개요 # 참고 IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음 # 개요 DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다. # 11장의 로드맵 팩토리 사용이 유비쿼터스 언어에 부합하는 표현력이 좋은 모델을 생성하게 해주는 이유 팩토리 메소드를 애그리게잇의 행동으로 사용하는 방법 다른 타입의 애그리게잇 인스턴스를 생성하기 위해 팩토리 메소드를 어떻게 사용할지 생각해보자 다른 바운디드 컨텍스트와 상호작용하고 외래 객체를 로컬 타입으로 변환하는 팩토리로서 도메인 서비스를 설계하는 방법을 배우자 11장. 팩토리 팩토리는 아마도 DDD에서 사용되는 패턴 중에서 좀 더 잘 알려진 편에 속하는 패턴이..
개요 # 참고 IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음 # 개요 DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다. # 10장의 로드맵 잘못된 애그리게잇의 모델링이 초래하는 부정적인 결과 애그리게잇 경험 법칠에 따라 설계하는 방법 일관성의 경계 안에서 실제 비즈니스 규칙에 따라 진정한 고정자를 모델링하는 방법 애그리게잇을 작게 설계할 때 얻을 수 있는 이점 애그리게잇의 다른 애그리게잇을 참조할 때 식별자를 사용하는 이유 애그리게잇 경계 바깥에서 결과적 일관성을 사용해야 하는 중요성 10장. 애그리게잇 처음에는 신중을 가해서 일관성 경계를 통해 엔티티와 값 객체를 애그리게잇으로 묶는..
개요 # 참고 IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음 # 개요 DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다. # 9장의 로드맵 전통적인 모듈과 배포 모듈성이라는 새로운 접근법의 차이점 유비쿼터스 언어에 따라 모듈 이름을 짓는 일의 중요성 기계적인 모듈 설계가 실제로 모델링의 창의성을 억누르는 상황 도메인 모델 밖에서 모듈이 수행하는 역할과, 새로운 바운디드 컨텍스트 보다 새로운 모듈을 선호해야 할 때가 언제인지 9장. 모듈 자바를 사요하고 있따면 이미 모듈과 친숙한 상태이다. 자바에선 이를 패키지라고 부른다. 9-1. 모듈로 설계하기 DDD컨텍스트에서 모델 안의 모듈은 서로..