etc.

API 호출 (in Backend vs in Frontend), BFF

hotamul 2023. 2. 28. 22:34

회사 보안 정책, 제한된 private network 등의 이유로 Backend에서 API 호출과 Frontend에서 API 호출, 어떤 게 더 좋은 선택일까 고민이 되어 블로그를 작성하면서 정리해보고자 한다.

  • Backend와 Frontend에서의 API 호출은 각각 장단점이 있다 (당연히 Application의 특정 use case와 요구 사항에 따라 달리질 수 있다...)
  • Backend API 호출은 아래와 같은 장점들이 있다.
    • improve performance
    • hide sensitive data and protect API keys (credential ticket 값들, ...)
  • 반면 Frontend API 호출은 아래와 같은 장점이 있다.
    • improve user experience
    • reduce server load
  • Frontend에서의 API 호출이 어려울 때도 있다. (방화벽 정책이나 제한된 private network 접근 제한 등의 이유로..., 내가 겪고 있는 상황!!)
  • 이러한 경우, API 서버에 안전하게 접근할 수 있도록 Backend는 Proxy 역할을 해서 Frontend와 API 서버 간 통신을 중재할 수도 있다. 이런 경우를 BFF(Backend For Frontend)라고도 할 수 있으려나?

카카오페이지는 BFF(Backend For Frontend)를 어떻게 적용했을까?를 읽어보니 BFF(Backend For Frontend)는 여러 플랫폼(Web, Mobile, ...)을 지원할 때 주로 사용되는 용어이고, Frontend 만을 위한 중간 서버를 구현하는 것이라고 한다. (아래 그림이 잘 설명해주는 것 같다.)

카카오페이지는 BFF(Backend For Frontend)를 어떻게 적용했을까? - BFF