Open Microfrontends로 보는 마이크로 프론트엔드 표준화 흐름 정리

okorion·2025년 12월 3일

1. 핵심 정리: 마이크로 프론트엔드는 무엇을 노리는가

핵심 한 줄
마이크로 프론트엔드는 거대한 프론트엔드 앱을 도메인 단위의 작은 앱들로 쪼개어, 독립적으로 개발·배포하면서도 사용자에게는 하나의 서비스처럼 보이게 만드는 아키텍처다.

왜 이런 개념이 나왔는가

  • 서비스 규모가 커질수록

    • 단일 리포지토리, 단일 빌드, 단일 배포로는 팀 간 충돌·리스크가 폭증
    • 프론트엔드 변경이 백엔드 못지않게 “릴리즈 위험 요소”가 됨
  • 조직 관점에서 해결하고 싶은 문제

    • 도메인별 팀이 독립적으로 움직이게 만들고 싶다
    • 기술 스택도 팀별로 자율성을 주고 싶다
    • 배포·롤백 범위를 작게 가져가고 싶다

개념 구조

  1. 도메인/기능 단위로 프론트 분할

    • 예: 홈, 검색, 상품, 결제, 마이페이지, 헤더/푸터 등
    • 각 영역을 하나의 독립 앱(마이크로 프론트엔드)으로 본다.
  2. 독립 개발·배포 가능한 작은 앱

    • 팀별로 다른 스택 사용 가능 (React / Vue / Angular 등)
    • 빌드 파이프라인·릴리즈 주기를 도메인별로 쪼갤 수 있다.
    • 백엔드의 마이크로서비스와 구조적 유사성.
  3. 호스트 앱(컨테이너)에 의해 통합

    • 실제 사용자 눈에는 “한 서비스”로 보이지만
    • 내부적으로는 여러 마이크로 프론트엔드를 호스트 앱이 묶어서 렌더링
  4. 상태·메시지를 공유해 일관된 UX 제공

    • 전역 메시지 버스, 공유 상태 관리, 공통 디자인 시스템으로

      • 로그인 상태, 사용자 정보, 테마, 네비게이션 등을 일관되게 유지
    • 사용자는 “모듈”이 아니라 “단일 서비스”로 체감


2. Open Microfrontends: 이 표준이 겨냥하는 문제

핵심 한 줄
Open Microfrontends는 “마이크로 프론트엔드를 어떻게 정의·연결·통신할 것인가”를 타입 안전하게 표준화하려는 시도다.

무엇을 표준화하려는가

  1. Description 파일을 통한 명시적 계약(Contract)

마이크로 프론트엔드 하나가 다음을 “설명서”로 제공한다고 보면 된다.

  • 이 모듈이 필요로 하는 설정 값(config)
  • 이 모듈이 발행·구독하는 메시지(messages)
  • 필요한 에셋(스크립트, 스타일, 번들 등)
  • 초기화/시작 함수와 그 인자 타입

즉, “나는 이런 설정과 메시지를 주고받는 모듈이다”라는 계약을 기계가 읽을 수 있는 형태로 명시한다.

  1. 호스트 앱 통합 코드의 자동 생성
  • 호스트 앱은 이 Description을 읽어

    • startMyFirstMicrofrontend 같은 타입 안전한 Starter 함수를 자동 생성
    • 설정 주입, 메시지 버스 연결, 에셋 로딩을 코드 생성으로 처리
  • 호스트 개발자는

    • 스펙을 다시 해석하거나 팀마다 다른 “구두 합의”를 맞출 필요 없이
    • 생성된 타입 정의·Starter만 사용하면 된다.

왜 의미가 큰가

  • 지금까지의 FE-MSA는

    • 팀마다 “우리가 이런 props 줬던 것 같은데…?” 수준의 암묵적 계약이 많았음
    • 마이그레이션·통합 시 런타임 에러, 타입 불일치 문제가 빈번
  • Open Microfrontends는

    • OpenAPI처럼 “계약 우선(Contract-first)” 접근을 프론트엔드에 도입
    • TypeScript·JSON Schema 기반으로 컴파일 타임에 타입을 보장
    • 통합·협업 비용을 줄이고, 실수 가능한 부분을 생성 코드에 위임

3. 현실: 대규모 서비스는 이미 각자만의 FE-MSA를 쓰고 있다

핵심 한 줄
지금 대기업들은 Open Microfrontends를 쓰고 있지 않다. 이미 자기들만의 FE-MSA 구조와 내부 도구를 굴리고 있다.

현재 대기업 FE-MSA의 전형적인 모습

  1. 내부 맞춤형 도구와 런타임
  • Webpack Module Federation, 자체 로더, 내부 런타임, 사내 라이브러리 등
  • 기술 스택, 배포 환경, 조직 구조에 최적화된 방식으로 설계
  • 문서화도 대부분 내부 위키/노션 수준에서 소화
  1. 고유한 ‘계약’ 방식
  • 공통 이벤트 버스, 공용 스토어, 공유 컴포넌트 라이브러리 등으로 통신

  • 하지만:

    • 특정 프레임워크(React, Vue)에 강하게 종속
    • 사내에서만 통하는 규약이어서 외부 팀·외주와의 통합이 힘듦

Open Microfrontends의 현재 위상

항목대규모 서비스의 현재 FE-MSAOpen Microfrontends
채택률매우 높음 (각자 구조 운영)낮음 (신규 제안 표준)
통합 방식Module Federation, 자체 런타임, 사내 라이브러리YAML/JSON Description + 코드 생성
주된 목표조직·서비스 확장성타입 안전성 + 통합 자동화
종속성회사·스택 특화스펙 기반, 상대적으로 중립적

정리하면,
지금은 “각자도생의 FE-MSA 시대”이고,
Open Microfrontends는 이 난장판을 어느 정도 표준화하자는 움직임이다.


4. 누가 주도하고, 정착 가능성은 어느 정도인가

4-1. 누가 이 판을 끌고 가는가

  • 특정 빅테크 한 곳이 “우리가 만든다”고 밀어붙이는 모양새라기보다는

    • OpenAPI Initiative 같은 형태의 커뮤니티/연합 모델에 가깝다.
    • 웹 표준 기구(W3C 등) 혹은 그 주변 생태계와 연결될 가능성이 높다.
  • 배경:

    • FE-MSA가 성숙할수록 “타사 솔루션·외부 팀과의 통합” 비용이 급증
    • 이를 표준 스펙으로 묶어 통합 비용을 줄이고 싶은 이해관계가 많다.

4-2. 정착 확률과 성공 요인

정착 가능성을 높이는 요인들은 다음과 같다.

성공 요인설명
타입 안전성Description → TS 코드 생성으로 런타임 버그를 컴파일 타임으로 끌어올림
자동화된 통합에셋 로드·config 주입·메시지 버스를 스펙 기반 자동 생성으로 처리
책임 분리“모듈 개발 팀”과 “호스트/통합 팀”의 역할이 명확해짐
OpenAPI 선례이미 백엔드 세계에서 “계약 중심 통합”이 검증된 상태

관건은 기존 대형 서비스의 레거시 전환 비용이다.

  • 이미 거대한 FE-MSA를 돌리고 있는 기업:

    • “새 표준으로 갈아타는 비용 vs 얻는 이득”의 함수
    • 당장 전면 도입보다는, 신규 프로젝트/부분 시스템에서 시범 적용할 가능성이 큼
  • 오히려:

    • 새로 마이크로 프론트엔드 도입을 고민하는

      • 중견·중소 서비스
      • SaaS·플랫폼 신규 프로젝트 쪽에서 먼저 채택할 확률이 높다.

5. 표준이 정착되면 무엇이 달라지는가

5-1. 개발자 관점

현재:

  • 팀 간 계약을 문서·미팅·슬랙으로 맞춘다.

  • 호스트 앱에서

    • 어떤 설정을 넘겨줘야 하는지
    • 어떤 메시지를 받을 수 있는지
    • 어떤 번들을 언제 로드할지
      전부 수동 코딩.

표준 정착 후 예상:

  • “새 마이크로 프론트엔드 추가한다”의 정의가 바뀐다.

    1. Description 파일 정의
    2. CI에서 스펙 검증 + 타입/Starter 코드 생성
    3. 호스트에서 startMyXxxMicrofrontend(config) 호출
  • 오류 양상도 변화:

    • 지금은 런타임에서 “이 메시지 필드는 undefined인데?” 같은 문제가 터짐
    • 이후에는 스펙-코드 불일치가 컴파일 타임·PR 단계에서 막힌다.

5-2. 아키텍처·운영 관점

  • 새 모듈을 붙일 때마다

    • “이 팀은 어떤 API를 쓰고, 어떤 권한이 필요하지?”를 사람이 정리하던 것에서
    • Description 파일 기반으로 중앙에서 조회 가능
  • 거버넌스 측면에서도

    • 어떤 모듈이 어떤 데이터·기능에 접근하는지 “스펙 뷰”로 파악 가능
    • 보안·컴플라이언스 대응이 쉬워진다.

6. 지금 개발자로서 어떻게 대비할 것인가 (실행 단계)

6-1. 개인 차원에서 할 일

  1. 마이크로 프론트엔드 기본 개념 정리

    • 도메인 분할 기준, 팀·리포지토리 구조, 런타임 통합 방식 등
    • FE-MSA 설계 글·사례를 몇 개 골라 구조만 비교해봐도 감이 잡힌다.
  2. “계약 우선” 사고 훈련

    • 현재 프로젝트에서도

      • 모듈 간 public API, events, config를 명시적으로 문서화하는 습관
    • TypeScript·JSON Schema 연동, 코드 생성 흐름을 직접 한 번 만들어보면 좋다.

  3. 상태 공유·메시지 버스 패턴 익히기

    • 전역 상태 관리, 이벤트 버스, pub/sub 패턴 이해도는

      • FE-MSA에서 필수 베이스 스킬에 가깝다.

6-2. 팀/조직 차원에서의 준비

  1. 지금 사용 중인 FE 구조 진단

    체크리스트 예:

    • 도메인 단위로 팀/리포지토리/배포가 나뉘어 있는가
    • 모듈 간 통신 방식이 문서화되어 있는가
    • 신규 페이지/기능 추가 시, 기존 코드에 얼마나 의존하는가
  2. 내부 “미니 Open Microfrontends” 시도

    • 바로 표준 도입이 아니라도:

      • 각 마이크로 앱이 필요로 하는 config·messages·assets를

        • 하나의 JSON/YAML로 정리해보는 연습
      • 그걸 읽어 Starter 코드/타입을 생성하는 내부 도구를 만드는 것도 가능

  3. 신규 프로젝트에서 실험 공간 마련

    • 레거시 전체를 바꾸기보다는:

      • 새 B2B 콘솔, 어드민, 파트너 센터 등

        • 트래픽/리스크가 상대적으로 낮은 도메인에서
        • FE-MSA + 스펙 기반 통합을 실험하는 게 현실적이다.
profile
okorion's Tech Study Blog.

0개의 댓글