반응형

도메인 주도 설계로 시작하는 마이크로서비스 개발 5

도메인 주도 설계로 시작하는 마이크로서비스 개발 - 6장 사례 연구

6장에서는 도서 대출 시스템을 예시로 하여 마이크로서비스를 도출하고 아키텍처를 구성하는 것을 살펴본다. 6.1. 요구사항 정의 도서 대출 시스템은 다음 기능을 필요로 한다. 사용자 관리 및 로그인 사용자를 등록한다. 등록시 사내 HR 시스템에 의해 검증된다. 특정 사용자는 사서의 역할을 부여받는다. 사용자는 로그인하거나 로그아웃 할 수 있다. 도서 관리 사서는 도서분류 정보를 등록/수정/삭제한다. 사서는 입고된 도서를 분류하고 등록/수정/삭제한다. 일반적인 도서는 도서공급사에 의해 공급된다. 각 도서는 대출할 수 있는 재고가 있으며, 대출/반납에 의해 재고가 조정된다. 도서 대출 및 반납 사용자는 도서를 검색한다. 사용자는 베스트 대출 목록을 조회할 수 있다. 사용자는 재고가 있는 도서를 대출한다.(기간..

카테고리 없음 2022.12.19

도메인 주도 설계로 시작하는 마이크로서비스 개발 - 5장 마이크로서비스 설

마이크로서비스의 중요한 점은 기능적으로 응집도를 높이고, 타 서비스 간의 의존도를 낮추는 것이다. 이를 만족해야 마이크로서비스가 유연해진다. 5장은 응집도를 높이고, 의존도를 낮추는 것에 대한 내용이다. 5. 1. 마이크로서비스를 도출하는 방법 5. 1. 1. 비즈니스 능력에 근거한 도출 마이크로서비스를 도출하는 가장 쉬운 방법은 경험을 근거로 도출하는 것이다. 예를 들어 하나의 비즈니스를 다음과 같은 마이크로서비스들로 구분 할 수 있다. 이 방식은 대략적인 도출에는 유용하지만, 서비스 간의 관계 파악이나 해당 서비스의 구체적인 기능, 독립적인 데이터 식별에는 미흡하다. 5. 1. 2. DDD의 바운디드 컨텍스트 기반 도출 비즈니스 능력에 근거한 도출을 보완하기 위해 DDD의 전략적 설계를 적용할 수 있..

카테고리 없음 2022.12.07

도메인 주도 설계로 시작하는 마이크로서비스 개발 - 4장 마이크로서비스와 애자일 개발 프로세스

4. 마이크로서비스와 애자일 개발 프로세스 애자일 프로세스는 마이크로서비스와 가장 잘 맞는 프로세스이다. 지속적인 개선을 추구하는 애자일 방식이 가장 효과적이라고 많은 곳에서 언급이 되는데, 이는 국내의 현실과는 맞지 않는 부분이 존재한다. 애자일을 추구한다고 말하며 설계 없이 프로젝트 개발을 시작하는 것이 그러한데, 이러한 부분은 실제 애자일이 추구하는 것과는 맞지 않다. 애자일은 설계가 필요 없는 것이 아닌, 산출물을 최소화하는 것이라고 볼 수 있다. 4. 1. 도메인 주도 설계와 마이크로서비스 DDD는 마이크로서비스의 설계와 개발을 위한 주요 가이드로 사용되고 있다. 다음 내용들을 통해 DDD, 애자일을 이용한 MSA를 설명한다. 4. 2. 기민한 설계/개발 프로세스 4. 2. 1. 점진/반복적인 ..

카테고리 없음 2022.12.01

도메인 주도 설계로 시작하는 마이크로서비스 개발 - 3장 마이크로서비스 애플리케이션 아키텍처

3. 마이크로서비스 애플리케이션 아키텍처 3장은 MSA 내부 아키텍처에 대한 내용이다. 실무에서 단기간의 프로젝트에서 설계에 신경 쓰지 않고, 기능 구현에만 몰두하면 이후 유지보수가 매우 힘들어지게 된다. 초기 단계에서의 시스템 설계는 매우 중요한데 이번 장에서는 MSA 내부 아키텍처에 대해 다룬다. 3. 1. 비즈니스 로직은 어디에? - 관심사의 분리 유연하고 확장성 있는 MSA 시스템을 위해서는 마이크로서비스의 내부 구조를 잘 만드는 것도 중요하다. 애플리케이션의 유지보수성을 높이기 위해서는 개인에 의존하기보다는 누구라도 유지보수를 할 수 있게 만들어야 한다. 모든 로직을 SQL 문으로 처리하기보다는 코드로 비즈니스 로직을 구현하는 것을 고려해야 한다. 그러나 실무에서 기능을 개선하면서 Go로 구현된..

카테고리 없음 2022.11.25

도메인 주도 설계로 시작하는 마이크로서비스 개발 - 2장 MSA의 이해

아래는 "도메인 주도 설계로 시작하는 마이크로서비스 개발"의 2장을 정리한 내용이다. 2장 MSA의 이해 2. 1. 리액티브 선언: 현대 애플리케이션이 갖춰야 할 바람직한 속성들 리액티브 선언은 다음과 같은 요소를 만족하는 시스템을 리액티브 시스템이라고 한다. 응답성(Responsive): 사용자에게 신뢰성 있는 응답을 빠르고 적절하게 제공하는 능력 탄력성(Resilient): 장애가 발성하거나 부분적으로 고장 나더라도 시스템 전체가 고장 나지 않고 빠르게 복구하는 능력 유연성(Elastic): 시스템 사용량에 비례해서 자원을 늘이거나 줄이는 능력 메시지 기반(Message Driven): 비동기 메시지 전달을 통해 위치 투명성, 느슨한 결합, 논블로킹 통신을 지향하는 것 이러한 요소들을 만족하면 리액티..

카테고리 없음 2022.11.24
반응형