유바바아들 닮은 개발자의 끄적끄적

[ 웹 개발 ] BFF 패턴에 대해 알아보자. 본문

웹개발

[ 웹 개발 ] BFF 패턴에 대해 알아보자.

유바바아들 2023. 7. 10. 17:43

 

BFF(BackEnd For FrontEnd) 패턴은 마이크로서비스 아키텍처에서 사용되는 소프트웨어 디자인 패턴으로, 특정 클라이언트 애플리케이션에 맞는 전용 백엔드 서비스를 구축하는 것을 중점으로 합니다. 일반적인 API를 제공하는 대신에 특정 프론트엔드 애플리케이션의 요구에 맞는 전용 백엔드 서비스를 생성하는 것이 BFF 패턴입니다. 다시 말해, BFF 패턴은 하나의 일반적인 백엔드 서비스 대신에 특정 클라이언트 애플리케이션을 위한 전용 백엔드 서비스를 생성하는 것을 의미합니다.

BFF 패턴은 마이크로서비스 아키텍처에서 주로 사용되며, 백엔드 서비스를 더 작고 관리 가능한 구성 요소로 분해하여 독립적으로 개발하고 배포할 수 있습니다. BFF 패턴을 사용함으로써 개발자는 각 프론트엔드 애플리케이션을 위한 전용 백엔드 서비스를 생성하여 성능과 확장성을 최적화할 수 있습니다. 이 접근 방식은 또한 백엔드 서비스를 더욱 유연하게 관리할 수 있도록 해주며, 각 서비스를 독립적으로 업데이트하고 유지할 수 있습니다.

BFF 패턴은 다음과 같은 방식으로 작동합니다:

프론트엔드 애플리케이션의 요구사항 파악: BFF 패턴을 구현하기 위해 개발자는 먼저 프론트엔드 애플리케이션의 특정 요구사항을 파악합니다.

전용 백엔드 서비스 생성: 프론트엔드 애플리케이션의 요구에 맞추어 성능과 확장성이 최적화된 전용 백엔드 서비스를 생성합니다. 이 서비스는 필요한 기능을 제공하도록 설계되며, 데이터를 적절한 형식으로 변환하는 역할을 담당합니다.

API를 통한 프론트엔드 애플리케이션과의 통신: 프론트엔드 애플리케이션은 정의된 API를 사용하여 전용 백엔드 서비스와 통신합니다. 이 API는 프론트엔드 애플리케이션에 맞게 설계되며, 애플리케이션에서 필요한 모든 데이터와 기능에 접근할 수 있도록 합니다. 전용 백엔드 서비스는 이 API를 구현하고 필요한 기능을 제공하도록 보장합니다.

BFF 패턴을 구현하기 위해 개발자는 일반적으로 프론트엔드 애플리케이션의 특정 요구사항을 파악하고, 이에 맞는 전용 백엔드 서비스를 생성하여 API를 통해 프론트엔드 애플리케이션과 통신합니다.

 



BFF 패턴의 장점은 다음과 같습니다:

성능 향상: 각 프론트엔드 애플리케이션을 위해 전용 백엔드 서비스를 생성함으로써 성능과 확장성을 최적화할 수 있습니다. 이를 통해 더 많은 트래픽을 처리하고 사용자에게 빠른 응답 시간을 제공할 수 있습니다.

유지보수 용이성: 백엔드 서비스를 더 작고 관리 가능한 구성 요소로 분해함으로써 업데이트와 유지보수를 더욱 쉽게 수행할 수 있습니다. 이는 오류와 다운타임의 위험을 줄이고 새로운 기능과 기능을 쉽게 도입할 수 있게 해줍니다.

유연성 증가: 각 프론트엔드 애플리케이션을 위해 전용 백엔드 서비스를 생성함으로써 서비스 관리에 더욱 유연성을 가질 수 있습니다. 각 서비스를 다른 서비스와 독립적으로 업데이트하고 유지할 수 있으며, 비즈니스 요구사항과 요구사항의 변화에 더욱 쉽게 대응할 수 있습니다.

보안 강화: 각 프론트엔드 애플리케이션을 위해 전용 백엔드 서비스를 생성함으로써 더욱 세밀한 보안 제어를 구현할 수 있습니다. 이를 통해 민감한 데이터를 보호하고 인가된 사용자만이 액세스할 수 있도록 보장할 수 있습니다.

BFF 패턴의 단점은 다음과 같습니다:

복잡성 증가: BFF 패턴의 주요한 단점은 복잡성의 증가입니다. 각 프론트엔드 애플리케이션을 위한 전용 백엔드 서비스를 구축하면 코드베이스와BFF(Best Friend Forever) 패턴은 마이크로서비스 아키텍처에서 사용되는 소프트웨어 디자인 패턴으로, 특정 클라이언트 애플리케이션에 맞는 전용 백엔드 서비스를 구축하는 것을 중점으로 합니다. 일반적인 API를 제공하는 대신에 특정 클라이언트 애플리케이션의 요구에 맞는 전용 백엔드 서비스를 생성하는 것이 BFF 패턴입니다. 이 패턴은 클라이언트와 백엔드 간의 통신을 관리하고, 클라이언트의 요구에 따라 백엔드 서비스를 필터링하거나 조합하는 역할을 합니다.

 

 

출처 : How does The BFF (Backend For Frontend) Pattern Work? (javarevisited.blogspot.com)

728x90
LIST