Skip to content

공통 UI 혼합형 배포 아키텍처 ​

목적 ​

공통 UI 패키지를 사용하는 GuidePortal, 프로세스 포털 등은 DirectoryService가 관리하는 포털 카탈로그를 구독 대상 원장으로 사용한다. 관리자는 테마 갤러리에서 실제 타이포그래피와 화면 밀도를 비교하고 승인한 릴리스를 선택한 사이트 또는 호환되는 전체 사이트에 배포한다.

두 가지 배포 경로 ​

변경 대상배포 모드소비 사이트 동작
색상, 간격, 폰트 프로필, 타이포그래피 토큰THEME_SYNC인증된 Push payload를 수신해 현재 릴리스와 CSS token을 저장하고 다음 화면 로드부터 적용·상태 보고
공통 UI 컴포넌트 코드, 폰트 파일, CSS 번들PACKAGE_PUSH승인 버전을 수신해 재배포 대기 상태를 기록하고 연결된 CI/배포 어댑터가 해당 버전을 설치·재배포

DirectoryService 제어 평면 ​

DirectoryService는 다음 데이터를 중앙에서 소유한다.

데이터역할
portal_configurations적용 가능한 포털의 ID, 이름, 기본 URL, callback URL 카탈로그
ui_theme_releases테마 token, 폰트 프로필, 패키지·테마 버전, 승인 상태
ui_portal_subscriptions포털별 공통 UI 구독 여부, 호환 패키지 범위, 수신 endpoint, 현재 적용 버전
ui_release_deployments대상 포털·모드별 Push 요청, 전달·적용·실패 결과 및 오류 이력

Push 요청은 DirectoryService가 짧은 수명의 서명 JWT로 인증한다. 소비 포털은 common-ui:push scope, 대상 portal ID, issuer/audience를 검증하고 허용한 데이터만 저장한다. 테마 token은 CSS custom property로 적용한다. 코드 패키지 버전은 소비 포털의 배포 어댑터 또는 CI 연결 없이는 실제 소스 변경이 불가능하므로 DELIVERED와 APPLIED를 구분한다.

GuidePortal 구독자 계약 ​

GuidePortal은 /api/common-ui/release endpoint에서 테마 Push를 받는다. THEME_SYNC는 즉시 적용 가능한 release state로 기록하고, PACKAGE_PUSH는 재배포 대기 버전으로 기록한다. 클라이언트는 공용 theme state API를 읽어 CSS custom property와 폰트 profile을 적용하며, 관리자 화면은 현재 적용 릴리스와 배포 대기 버전을 표시한다.

운영 순서 ​

  1. DirectoryService의 포털 설정에서 대상 사이트를 등록한다.
  2. 포털별 구독 endpoint와 호환 가능한 공통 UI 패키지 버전 범위를 설정한다.
  3. 테마 갤러리에서 릴리스를 비교하고 승인한다.
  4. 대상 포털을 선택한 뒤 THEME_SYNC 또는 PACKAGE_PUSH를 Push한다.
  5. 중앙은 대상 사이트의 적용 결과를 기록하고, 실패 또는 호환성 불일치 상태를 관리자에게 표시한다.

이 설계는 중앙 DirectoryService를 포털 목록과 승인·배포 상태의 원장으로 사용하며, 각 업무 포털의 원본 코드와 배포 권한은 해당 포털이 계속 소유한다.