Community

Backend, Frontend API Spec으로 싸우지 않기

얼마전 회사 동료분이 알려주신 BFF(Backend For Frontend) 대략적으로 설명 듣고 몇몇 기술 블로그를 찾아보았다 + ChatGTP 지난 시간 프론트 분들과 API Spec 논의했던, 화면 단위로 API를 만들지 또는 범용 API와 같이 비지니스 도메인 단위로(주로 Monolithic 환경에서) CRUD API를 만들지에 대한 현재 상황에 맞는 결론을 도출한것 같다 "현재 상황"이라는 단서를 단 이유는 최근 UI 복잡성으로 화면을 그려주는 작업이 만만치 않다 👈 프론트 안해본 백엔드 생각! 또한 iOS, Android 앱의 경우 '사용자 디바이스 리소스를 사용하면 좋다 -> 배터리 소모를 줄여야한다'로 생각이 전환되는 것 같다 이를 극복하기 위해서는 단일 API를 통해 화면에 필요한 데이터만 응답된다면 사용자 디바이스 리소스를 사용하지 않고 여러가지 면에서 효과적인 서비스가 가능하다 이에 적합한 아키텍처가 BFF인 것 같다 또한 서비스의 엔드포인트(Web, App)가 다양해짐에 따라 같은 화면이라도 서로 다른 API 응답을 원할 때가 많기에 이럴 경우 하나의 API에서 모든 엔드포인트를 커버하기보다는 각각에 대응하는 API를 만들면 좀더 개발이 수월해 질수 있다 물론 운영 입장에서는 관리해야하는 서비스(including BFF)가 늘어나는 단점이 존재하기는 한다 BFF 장/단점이 존재하기에 이를 잘 이해한다면 발생한 문제를 푸는데 도움이 될것 같다 참고로 BFF는 MSA 기반에서 발생하는 문제를 주로 풀기 위함이다 https://cake-hawthorn-723.notion.site/BFF-Backend-For-Frontend-fe2b2470a0bc47b288df440b3aaf26db

알림

알림이 없습니다