![logo](https://static.codenary.co.kr/company-logo/187.png)
카카오페이지의 BFF 구조
코드너리 | 2022. 10. 11
BFF
사용된 기술:
![nextjs-image](https://image.wanted.co.kr/optimize?src=https://static.codenary.co.kr/framework_logo/nextjs.png&w=100&q=90)
![apollo-image](https://image.wanted.co.kr/optimize?src=https://static.codenary.co.kr/framework_logo/apollo.png&w=100&q=90)
![redux-image](https://image.wanted.co.kr/optimize?src=https://static.codenary.co.kr/framework_logo/redux.png&w=100&q=90)
![graphql-image](https://image.wanted.co.kr/optimize?src=https://static.codenary.co.kr/framework_logo/graphql.png&w=100&q=90)
![content](https://static.codenary.co.kr/architecture_img/194/14d6815a-a2d2-4996-89a8-a111a0ed6af9.png)
요약:
- API를 다이렉트로 의존할 때의 이슈들을 해결하고자 BFF가 등장합니다. Backend For Frontend라는 말 그대로 프론트엔드를 위한 중간 서버를 구현하는 것이라고 생각하면 됩니다.
- 그림과 같이, 하나의 프론트엔드에 대해 하나의 BFF가 있어야 하며 BFF를 프론트엔드 요구사항에 맞게 구현할 수 있습니다. 따라서, 여러 플랫폼을 지원하지 않을 경우에는 BFF가 의미 없을 수 있습니다.
- 참고로 카카오페이지는 iOS, Android, Web을 지원하고 있고, Web에서만 BFF를 적용을 하고 있습니다. BFF에서는 프론트엔드 생선성을 더욱 높이기 위해, 데이터를 통합하는 처리를 담당합니다. 또한, BFF를 구현하여 프론트엔드를 백엔드에서 분리된 상태로 유지할 수 있습니다. BFF는 프론트엔드 요구사항을 충족하기 위해 존재하며, 이상적으로는 프론트엔드 개발자가 빌드해야 합니다.
- 결론적으로, 앞서 얘기했던 API 의존성 이슈들을 BFF 쪽에서 처리를 해줄 수 있습니다.