[1]의 4장은 패턴 언어 개요를 다루고 있다. 여기서는 기본 메시지 구조 관련한 패턴에 대해 살펴 보자
1. 아토믹 파라미터 (Atomic Parameter)
- 설명: API 메시지에서 사용되는 가장 기본적인 단위로, 단순한 비정형 데이터(예: 숫자, 문자열, 불리언 등)를 표현.
- 주요 특징:
- 메시지 교환의 기본 전송 단위로 사용.
- 단일 값으로 명확하게 정의되어 있음.
- 이름, 타입, 선택성 등을 명시하여 데이터의 의미를 전달.
- 포스의 충돌:
- 과도한 사용 시 API의 효율성이 떨어질 수 있음.
- 단일 값만으로 표현할 수 없는 복잡한 구조의 데이터 요구에 대응하기 어려움
2. 아토믹 파라미터 리스트 (Atomic Parameter List)
- 설명: 여러 개의 아토믹 파라미터가 밀접하게 연관되어 있을 때 이를 하나의 그룹으로 결합해 표현하는 방식.
- 주요 특징:
- 관련된 데이터 엘리먼트를 논리적 그룹으로 묶음.
- 클라이언트가 특정한 데이터 필드만 선택적으로 요청할 수 있도록 허용.
- 리스트는 위치 인덱스 또는 키로 식별되며, 필요 시 반복적으로 사용할 수 있음.
- 포스의 충돌:
- 과도한 중첩으로 인해 데이터 파싱과 처리의 복잡도가 증가할 수 있음.
- 특정 플랫폼에서 스칼라 값의 제한으로 인한 구현 문제 발생 가능.
3. 파라미터 트리 (Parameter Tree)
- 설명: 아토믹 파라미터와 리스트만으로 표현할 수 없는 복잡한 데이터를 계층적 구조로 정의.
- 주요 특징:
- 복잡한 데이터 구조를 계층적으로 표현해 데이터의 포함 관계를 명확히 함.
- 각 노드는 단일 아토믹 파라미터, 리스트, 또는 또 다른 트리로 구성될 수 있음.
- 재귀적으로 정의되며, JSON 등에서 객체의 중첩 구조를 표현하는 데 유용.
- 포스의 충돌:
- 중첩 구조가 지나치게 복잡해지면 대역폭과 성능 저하 우려.
- 복잡한 구조의 데이터 트리로 인해 API 간 상호운용성이 떨어질 수 있음.
4. 파라미터 포리스트 (Parameter Forest)
- 설명: 여러 개의 파라미터 트리를 그룹화해 최상위 레벨에서 관리하는 패턴.
- 주요 특징:
- 여러 트리들을 하나의 구조로 결합하여 사용자가 필요한 데이터를 쉽게 참조 가능.
- 다양한 파라미터 트리를 독립적으로 관리할 수 있도록 함.
- 요청이나 응답 본문에서 복수의 파라미터 트리를 노출.
- 포스의 충돌:
- 복잡한 데이터 구조로 인해 직렬화와 역직렬화의 부담이 커질 수 있음.
- 구조적 복잡성으로 인해 메시지 교환 시 불필요한 데이터 전송이 발생할 위험.
참고 문헌
[1] 올라프 짐머만 , 미르코 스토커 , 다니엘 뤼브케 , 우베 즈둔 , 세자레 파우타소 , "마이크로서비스 API 디자인 패턴: 쉬운 통합을 위한 결합도 최적화 전략" 에이콘. 이승범 역
'Software Architecture' 카테고리의 다른 글
미니 품질 속성 워크샵 (Mini Quality Attribute Workshop) (0) | 2024.11.20 |
---|---|
Technology Stack과 System Architecture (1) | 2024.11.13 |
마이크로서비스 API 디자인 패턴: 4장 패턴 언어 개요: API 방향 및 가시성 (0) | 2024.10.30 |
마이크로서비스 API 디자인 패턴: 5장 엔트포인트 타입과 동작 정의 (0) | 2024.10.24 |
마이크로서비스 API 디자인 패턴: 1장 애플리케이션 프로그래밍인터페이스(API) 기초 (2) | 2024.10.16 |