Software Architecture
마이크로서비스 API 디자인 패턴: 4장 패턴 언어 개요: API 방향 및 가시성
깜장호랭
2024. 10. 30. 22:23
[1]의 4장은 패턴 언어 개요를 다루고 있다. 여기서는 API 방향 및 가시성 관련한 패턴에 대해 살펴 보자
1. 프론트엔드 통합 (Frontend Integration)
- 설명: 모바일 앱이나 웹 애플리케이션의 사용자 인터페이스를 백엔드 서비스와 연결하여 데이터를 교환하고 기능을 수행할 수 있게 해주는 패턴.
- 주요 특징:
- 주로 HTTP/REST API로 구현되며 클라이언트에서 백엔드로 요청을 전달.
- 데이터 소스 및 프로세싱 로직을 프론트엔드에 제공.
- 클라이언트가 백엔드 활동을 호출하거나 데이터를 업로드할 수 있도록 함.
- 포스의 충돌:
- 데이터의 적시성과 효율성을 유지하면서 요청의 페이로드 크기를 최적화해야 함.
- 과도한 통신으로 인한 성능 저하와 클라이언트 오버페칭을 방지해야 함.
2. 백엔드 통합 (Backend Integration)
- 설명: 시스템의 서로 다른 백엔드 컴포넌트 간에 데이터를 교환하고 상호작용을 트리거할 수 있게 하는 패턴.
- 주요 특징:
- 분산된 애플리케이션의 백엔드에서 데이터를 교환하고 활동을 트리거할 수 있도록 지원.
- 비동기 메시징, HTTP, gRPC 등 다양한 기술로 구현 가능.
- 클라이언트가 아닌 다른 백엔드 시스템에서 독점적으로 사용됨.
- 포스의 충돌:
- 시스템 간 상호 운용성을 유지하면서 독립적 개발이 가능하도록 해야 함.
- 데이터 교환과 처리 속도를 균형 있게 조정해야 함.
3. 퍼블릭 API (Public API)
- 설명: 공개적으로 제공되는 API로, 전 세계 누구나 접근할 수 있는 형태로 배포됨.
- 주요 특징:
- 공용 인터넷에 노출되며 사용자 인증 및 액세스 제어가 필요할 수 있음.
- API 키 또는 인증 토큰을 통해 보안 유지.
- 서비스 레벨 계약(SLA)과 요금제 등을 통해 경제적 모델을 구축.
- 포스의 충돌:
- 높은 보안성과 안정성을 제공하면서 사용자 접근성을 보장해야 함.
- 공정한 요금제 설정과 과도한 API 사용 방지를 위한 제한 필요.
4. 커뮤니티 API (Community API)
- 설명: 여러 조직이 공동으로 사용하는 API로, 특정 사용자 그룹에게만 제한된 접근을 허용하는 형태.
- 주요 특징:
- 제한된 네트워크(예: 엑스트라넷)를 통해 배포.
- 특정 커뮤니티의 회원만 사용 가능.
- 보안 및 커뮤니티 지원 관리가 중요.
- 포스의 충돌:
- 보안성과 사용 편의성을 동시에 만족해야 함.
- 커뮤니티 회원들 간의 상호작용과 API 사용 정책을 일관되게 관리해야 함.
5. 솔루션 내부 API (Solution Internal API)
- 설명: 동일한 애플리케이션 내에서 사용되는 API로, 내부 컴포넌트 간 통신을 위해 설계됨.
- 주요 특징:
- 마이크로서비스, 모듈 등 내부 시스템 컴포넌트 간 데이터 전송에 사용.
- 로컬에서 실행되거나 동일한 데이터 센터 내에서 작동하는 서비스 간 통신을 지원.
- 외부 노출 없이 내부에서만 사용됨.
- 포스의 충돌:
- 시스템 내에서 효율적인 통신을 유지하면서 데이터의 일관성을 보장해야 함.
- 독립적 배포와 함께 복잡한 시스템의 결합성을 줄여야 함.
참고 문헌
[1] 올라프 짐머만 , 미르코 스토커 , 다니엘 뤼브케 , 우베 즈둔 , 세자레 파우타소 , "마이크로서비스 API 디자인 패턴: 쉬운 통합을 위한 결합도 최적화 전략" 에이콘. 이승범 역