programming-study
programming-study copied to clipboard
BFF 패턴
장/단점
하나의 환경 ? 모놀리식에서는?
하나의 정보를 가져오기 위해 여러 API를 호출하는 것은 네트워크 관점에서 오버헤드가 될 수 있음
- 그러나, 이것 역시 프로젝트 규모와 구성 등등 에 따라 선택헤야할 문제
- 그렇다면 우리는? 🤔
- 클라이언트가 API를 많이 호출하는가?
- 이로 인해 리로스를 많이 잡아먹는가?
타 게시물
타회사 사례
- 오늘의집
- https://www.bucketplace.com/post/2022-02-22-%EC%98%A4%EB%8A%98%EC%9D%98%EC%A7%91-msa-phase-1-aggregator-%EA%B3%B5%ED%86%B5%EB%AA%A8%EB%93%88/
- aggegator 모듈 서비스
- GraphQL의 data fetching 같은 컨셉으로 느껴짐 🤔
- 카카오페이
- https://tech.kakaopay.com/post/bff_webflux_coroutine/
- API 조합기
- 모바일 대역폭이 적어서 100배 정도 차이가 날 수 있음
- 우리 LAN 망은 보통의 인터넷망과 비교했을때 얼마나 빠른가?
- non-blocking 처리를 위해 WebFlux 도입
요약
- 여러 환경적인 요인(서버 위치, 네트워크 대역폭 등등)애 따라서 속도차가 있을 수 있음
- 그렇다면 우리 서비스가 느린가?
- 트래픽이 없는 상태이긴 했지만 체감할 수 있는 정도는 아니였음
- 스트레이스 테스트를 진행하면서 더블 체크를 해볼 필요는 있음
- 그 외에도 다른 전략을 사용할 수 있음 ex) 데이터 압축
- 너무 비효율적으로 느껴지는 API 호출은 큰 도메인 개념을 만들고 통합해보자