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 디자인 패턴: 쉬운 통합을 위한 결합도 최적화 전략" 에이콘. 이승범 역