Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. # 파이썬으로 살펴보는 아키텍처 패턴 - [[이벤트 기반 아키텍처]] - [[이벤트와 메시지 버스]] - [[메시지 버스를 타고 시내로 나가기]] - [[커맨드와 커맨드 핸들러]] - [[이벤트를 사용한 마이크로서비스 통합]] - 명령-질의 책임 분리 [[CQRS]] - [[의존성 주입]] [[dependency injection]] [[DI]] ## 부록 아키텍처의 구성 요소와 하는 일 ^ 계층 ^ 구성 요소 ^ 설명 ^ ^ 도메인\\ : 비즈니스 로직을 정의한다 | [[엔티티]] | 애트리뷰트는 변할 수 잇는 도메인 객체지만,\\ 시간이 지나도 인식 할 수 있는 정체성이 있다. | ^:::| [[값 객체]] | 불변 도메인 객체로 애트리뷰트의 조합이 전체 객체를 결정한다.\\ 모든 애트리뷰트는 다른 동일한 값 객체로 대체할 수 있다 | ^:::| [[애그리게이트]] | 데이터 변경의 목적으로 한 단위로 취급하는 연관 객체들의 모임이다.\\ [[일관성 경계]]를 정의하고 강제한다 | ^:::| [[이벤트]] | 무언가 발생할 수 있는 일을 표현한다 | ^:::| [[커맨드]] | 시스템이 수행해야 하는 작업을 표현한다 | ^ 서비스 계층\\ : 시스템이 수행해야 하는 작업을 정의하고\\ 다른 구성 요소를 [[오케스트레이션]]한다. | [[핸들러]] | 커맨드나 이벤트를 받고 그에 따라 일어나야 하는 일을 수행한다. | ^:::| [[작업 단위]] | 데이터 통합에 대한 추상화다.\\ 각 작업 단위는 [[원자적 업데이트]]를 표현한다.\\ 작업 단위가 있어서 저장소를 사용할 수 있다.\\ 검색된 애그리게이트의 새로운 이벤트를 추적한다. | ^:::| [[메시지 버스]] (내부) | 적절한 핸들러에게 보내([[라우팅]]) [[커맨드]]와 [[이벤트]]를 처리한다 | ^ 어댑터(2차)\\ : 시스템에서 외부세계로 이어지는\\ 인터페이스(I/O)의 구체적인 구현 | [[저장소]] | 영속적인 저장소에 대한 추상화다.\\ 애그리게이트마다 자신만의 저장소가 있다. | ^:::| [[이벤트 발행자]] | 이벤트를 외부 메시지 버스에 넣는다 | ^ 진입점(1차 어댑터)\\ : 외부 입력을 서비스 계층 호출로 변환한다. | [[웹]] | 웹 요청을 받아서 커맨드로 변환하고 변환한 커맨드를 내부 메시지 버스에 넣는다. | ^:::| [[이벤트 소비자]] | 외부 매시지 버스의 이벤트를 읽어서 커맨드로 변환한다. 변환한 커맨드를 내부 메시지 버스에 넣는다. | ^ 해당 사항 없음 | [[외부 메시지 버스]] ([[메시지 브로커]]) | 다른 서비스들이 이벤트를 통해 서로 통신하기 위한 인프라다. | ### 프로젝트 구조 틀 - http://pyinvoke.org - https://pypi.org/project/environ-config/ ## 추천 도서 - [[Clean Architectures in Python]] - 파이썬 애플리케이션 아키텍처에 대해 다루는 몇 안 되는 책 중 하나다 - [[기업 통합 패턴]] - [[메시징 패턴]]을 시작하는 책으로 좋다 - [[마이크로서비스 도입, 이렇게 한다]] - [[마이크로서비스 아키텍처 구축]] - 여러 가지 패턴을 소개한다. - 가장 인기 있는 패턴으로 [[스트랭글러 피그 패턴]]을 언급한다. - 여러분이 [[마이크로서비스]]로 옮기려고 계획 중이라면 이 두 책을 살펴보는 걸 권한다. - [[통합 패턴]]이나 [[비동기 메시징 기반 통합]]에 대한 책으로도 아주 좋은 책이다 open/파이썬으로-살펴보는-아키텍처-패턴.txt Last modified: 2024/10/05 06:15by 127.0.0.1