ABOUT ME

Today
Yesterday
Total
  • 미디엄 게시글을 읽고 - 2025/01/09
    데일리 데브 인사이트 2025. 1. 9. 21:12
    제목 Backend for Frontend (BFF) Architecture

    ECMAScript 2024 (ES15): Unveiling the Latest JavaScript Features

    출처 https://medium.com/gitconnected/backend-for-frontend-bff-architecture-64fa9f316a5a https://medium.com/javascript-in-plain-english/ecmascript-2024-es15-unveiling-the-latest-javascript-features-9186d72a10ae
    요약 BFF의 작동 방식
    1. 클라이언트 요청: 각 클라이언트(웹, 모바일 등)가 해당하는 BFF로 요청을 보냅니다.
    2. BFF 계층: BFF는 여러 마이크로서비스에서 데이터를 가져와 필요한 변환 및 최적화를 수행합니다.
    3. 마이크로서비스: BFF는 사용자 서비스, 주문 서비스 등 다양한 서비스와 상호작용하여 데이터를 준비합니다.
    BFF의 장점
    1. 맞춤형 사용자 경험: 각 클라이언트가 필요한 데이터만 받아 과도한 데이터 전송을 방지하고 성능을 개선합니다.
    2. 보안 강화: 인증, 권한 부여, 속도 제한 등을 통해 백엔드 서비스와의 상호작용을 보호합니다.
    3. 확장성 향상: 플랫폼별로 독립적으로 백엔드를 확장하고 최적화할 수 있습니다.
    4. 프론트엔드 개발 간소화: 데이터 변환 작업을 백엔드에서 처리해 프론트엔드 개발 부담을 줄입니다.
    BFF를 사용할 때
    • 멀티 플랫폼 애플리케이션: 웹, 모바일 등 플랫폼별로 다른 요구사항이 있을 때 적합합니다.
    • 마이크로서비스 오케스트레이션: 여러 서비스에서 데이터를 가져와 하나의 응답으로 통합해야 할 때 유용합니다.
    • 레거시 API 최적화: 기존 시스템의 복잡성을 숨기고 현대적인 인터페이스를 제공할 때 활용할 수 있습니다.
    BFF의 단점 및 고려사항
    1. 유지보수 부담 증가: 프론트엔드별로 여러 백엔드를 관리해야 하므로 복잡성이 증가할 수 있습니다.
    2. 데이터 일관성 문제: 설계가 잘못되면 플랫폼 간 반환되는 데이터가 불일치할 수 있습니다.
    3. 성능 병목 현상: BFF 계층이 최적화되지 않으면 성능 저하가 발생할 수 있습니다
    1. 올바른 유니코드 문자열 처리
    • `String.isWellFormed()`와 `String.toWellFormed()`:
    • 문자열이 UTF-16 형식에 맞는지 확인하거나, 잘못된 문자열을 수정하여 올바른 형식으로 변환합니다.
    2. `Promise.withResolvers()`
    • 외부에서 프로미스의 **해결(resolve)**과 **거부(reject)**를 제어할 수 있는 새로운 메서드.
    • 비동기 작업을 더 세밀하게 관리할 수 있습니다.
    3. 정규 표현식 플래그 `/v`
    • 유니코드 세트 매칭과 문자열 리터럴 매칭을 지원하여 더 강력한 패턴 매칭을 제공합니다.
    • 예: `\q{}` 구문으로 문자열 리터럴 매칭 가능.
    4. 배열 그룹화
    • `Object.groupBy()`와 `Map.groupBy()`:
    • 배열이나 컬렉션의 요소를 키 기준으로 그룹화하는 새로운 메서드.
    • 데이터 분류와 정리가 간편해집니다.
    5. ArrayBuffer와 SharedArrayBuffer 개선
    • `ArrayBuffer.prototype.resize()` 및 기타 메서드로 버퍼 크기를 동적으로 조정 가능.
    • 메모리 관리가 더욱 유연해졌습니다.
    6. 동기 및 비동기 Atomics
    • `Atomics.waitAsync()`:
    • 공유 메모리에서 비동기적으로 변경 사항을 기다릴 수 있는 기능 추가.
    7. 기타 주요 업데이트
    • 정렬된 배열 반환 (`toSorted()`):
    • 원본 배열을 수정하지 않고 정렬된 새 배열 반환.
    • 논리 할당 연산자 (`&&=`, `||=`, `??=`):
    • 간결한 조건문 작성 가능.
    • Temporal API:
    • 날짜와 시간 처리를 현대화.
Designed by Tistory.