배경

클라이언트에서 여러 엔드 포인트를 바라보고 있는 상황입니다. (10개 서버, 2개 소켓 서버) 각 서버의 요청, 응답, 에러 등에 대한 포맷이 다를 수 있는 이슈, 에러 추적 이슈 등 여러 이슈로 이어질 수 있습니다.

클라이언트의 멀티 엔드포인트 구조를 해소하기 위해 BFF 역할을 하는 서버 구성이 필요하다고 판단됩니다.

%% BFF
graph LR
    %% __START
    Client --> |1.request| BFF_Server
    BFF_Server --> |2.request| A_Server
    BFF_Server --> |2.request| B_Server
    BFF_Server --> |2.request| C_Server
    BFF_Server <--> |3.process| BFF_Server
    BFF_Server --> |4.response| Client

    subgraph BFF
        Client
        BFF_Server
        A_Server
        B_Server
        C_Server
    end

    _Client --> |1.request| _A_Server
    _Client --> |2.request| _B_Server
    _Client --> |3.request| _C_Server
    _A_Server --> |1-1.response| _Client
    _B_Server --> |2-1.response| _Client
    _C_Server --> |3-1.response| _Client

    subgraph BFF_NO
        _Client
        _A_Server
        _B_Server
        _C_Server
    end
    %% __END

본인의 입장(BFF 도입)

[API 일관성 확보]

[복잡성 감소]

[에러 추적 및 로깅 용이]

[보안 강화]

[프론트엔드 최적화]