새소식

반응형
Spring/SpringCloudGateway

배달의민족 API Gateway

  • -
반응형

다른 회사에서는 API gateway를 어떻게 쓰고 있는지 궁금해서 관련 영상을 찾아보다가 발견하게 되었다. 

API gateway를 개발 및 운영하는데 많은 도움이 될 거 같아 내용을 정리하게 되었다.

 

목차 

  1. API gateway란
  2. 왜 API gateway가 필요할까
  3. 배민의 API gateway

 

API gateway란

  • 큰 범주에서 두 가지를 지원
    • 라우팅 - 클라이언트의 요청을 적절한 서비스로 전달 
    • 횡단 관심사 - 여러 서비스에서 공통으로 처리되어야 하는 문제를 중앙에서 일관되게 처리 
      • 인증, 보안, 모니터링, 탄력성 

왜 API gateway가 필요할까

  • 모놀리식 -> 마이크로 서비스 변경되며 발생하는 문제점이 근본적인 원인으로 본다
    • 클라이언트에서 각 마이크로 서비스에 도메인 정보 등을 알아야 해서, 의존성 증가로 인한 확장성 저하
    • 기존에 직접 조회했던 정보를 API를 통해서 요청해야 하게 되어 각각의 요구사항에 맞춰주기보다는 범용적인 API를 제공하게 되어 불필요한 정보가 클라이언트에 노출될 수도 있다.
    • 위와 유사하게 각 마이크로 서비스의 정보를 조회해 와 조합해서 클라이언트에게 정보를 제공해야 할 때 해당 로직을 수행할 곳이 클라이언트(APP)가 되어 비즈니스 정책이 노출될 수 있다.  
  • 이러한 문제들을 해결할 수 있는 것이 API gateway Pattern이다.
    • MSA에서 도메인들이 분할되면서 발생하는 문제를 프론트 서버가 해소 

 

Conway's law

어떤 조직이 설계하는 시스템은 해당 조직의 의사소통 구조를 반영한다. 

조직의 커뮤니케이션 구조 > 마이크로 서비스의 구조

조직의 비즈니스 영역 > 마이크로 서비스로 구성 

반드시 적용해야 하는 것은 아니고, 서비스를 효과적으로 운영하기 위해서는 이러한 법칙이 적용되더라..

 

이에 맞춰 프론트 서버도 늘어나게 된다. 

이에 따라 프론트 서버에 적용되는 횡단 관심사의 문제 발생

-> 이를 API gateway에서 처리 

 

API gateway vs API gateway Pattern 

해결하는 문제의 영역이 다르다. 

API gateway pattern은 client의 요구사항을 전담하는 프론트 서버의 역할

API gateway은 서버 간의 횡단 관심사를 해결하는 역할  

 

배민의 API gateway

위에 언급한 횡단관심사를 주로 지원 

 

 


 

해당 영상을 통해서 중요한 개념을 몇 가지 알아갈 수 있어서 좋았다.

conway's law, api gateway pattern.. 

이러한 개념들을 알아놓으면 큰 그림을 그리고, 다른 개념들을 이해하는데 많은 도움이 될 것 같다. 

 

처음 영상을 볼 때는 어떻게 적용했는지 구체적인 사항이 궁금했는데 

전반적인 개념을 잘 설명해 주는데 초점이 맞춰져 있는 영상이라 생각이 들었다. 

생각한 것과 다른 내용이라서 처음에는 의아했는데 영상을 볼수록 내용에 빠져들게 되었다.

발표자분께서 말씀을 잘하시는 게 느껴졌다. 

 

배민의 적용사항은 자세하게 언급되진 않았지만

properties로 관리되는 route 정보들을 DB화 하도록 커스터마이징 한 부분 

custom filter chain을 구성한 부분이 기억에 남는다. 

 

custom filter는 만들어 보았는데 filter chain까지 따로 구성했다는 내용은 생소해서 

다음에 그쪽 관련 코드를 볼 때 한번 생각해 보면 좋을 거 같다. 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.