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 만을 위한 중간 서버를 구현하는 것이라고 한다. (아래 그림이 잘 설명해주는 것 같다.)
