728x90
반응형
분해전략
애플리케이션의 아키텍쳐는 여러 파트로 분해와 파트들의 연관성
이 두가지 때문에 중요하다.
업무와 지식을 분리하여 효과적으로 팀을 이루어 생산적인 작업을 할 수 있고 어떻게 상호작용 하는지 알 수 있다.
#
소프트웨어 아키텍쳐 4+1 뷰 모델
아래 4가지 뷰를 통해서 시나리오 뷰를 작동한다.
논리 + 구현 + 프로세스 + 배포 => 시나리오
논리 뷰 (Logical View)
구분 | 내용 |
---|---|
개발자가 작성하는 것 | |
엘리먼트 | 클래스, 패키지 |
관계 | 상속, 연관, 의존 등 클래스와 패키지의 관계 |
구현 뷰 (Implementation View)
구분 | 내용 |
---|---|
빌드 시스템의 결과물 | |
엘리먼트 | 모듈(JAR), 컴포넌트(WAR) |
관계 | 모듈과 컴포넌트의 관계 |
프로세스 뷰(Process View)
구분 | 내용 |
---|---|
런타임 컴포넌트 | |
엘리먼트 | 프로세스 |
관계 | 프로세스간 통신(IPC) |
배포 뷰(Deployment View)
프로세스간 머신(물리,가상)에 매핑되는 방법
구분 | 내용 |
---|---|
머신에서 실행 중인 프로세스 | |
엘리먼트 | 머신, 프로세스 |
관계 | 네트워크 |
#
계층화 아키텍쳐 스타일
대표적인 아키텍쳐 스타일로 계층마다 역할을 분담하며 계층간 의존을 제한한다.
표현 계층 (Presentaiton Layer)
사용자 인터페이스, 외부 API 구현 계층
단점 : 상호작용이 한 곳
비지니스 로직 계층 (Business Logic Layer)
비지니스 로직 구현 계층
단점 : DB 의존 없이 비지니스 로직 구현 불가
영속화 계층 (Persistent Layer)
DB 상호작용 계층
단점 : DB 상호작용 하는 곳이 한곳인가?
#
육각형 아키텍쳐 스타일
논리 뷰를 비지니스 로직 중심으로 구성하는 계층화 스타일의 대안.
우리가 아는 보통의 웹 프레임 워크
#
MSA 스타일
MSA도 일종의 아키텍쳐 스타일로 육각형 아키텍쳐 스타일로 구성된 서비스들의 통신으로 협동하는 구조.
FTGO 를 MSA 로 재구성한 예시
MSA 서비스
서비스는 단독 배포 가능한 컴포넌트로 API 기능을 제공.
MSA 느슨한 결합
서비스는 서로 API를 통해서 상호작용하므로 이 느슨하게 결합된 서비스는 유지보수성, 테스트성을 높이고 개발 시간을 단축하게 해줌. 물론 DB를 공유하지 않기에 데이터 일관성 측면에서는 어려워지는 단점이 있음.
MSA 공유 라이브러리
코드 중복을 줄이기 위해서 재사용 가능한 모듈을 사용하는 것은 당연하지만 변경될 일이 아주 희박한 코드 말고는 서비스마다 구현 하는 것이 좋다.
728x90
반응형
'IT > Micro Service Architecture' 카테고리의 다른 글
Micro Service Architecture - 6. IPC (0) | 2021.09.27 |
---|---|
Micro Service Architecture - 5.분해전략 2 (0) | 2021.09.27 |
Micro Service Architecture - 3.패턴 (0) | 2021.09.07 |
Micro Service Architecture - 2.FTGO 예시 (0) | 2021.09.06 |
Micro Service Architecture - 1. MSA (0) | 2021.09.06 |