기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
마이크로 프런트엔드로 페이지 및 뷰 구성
클라이언트 측 구성, 엣지 측 구성 및 서버 측 구성을 사용하여 애플리케이션의 보기를 구성할 수 있습니다. 구성 패턴은 필요한 팀 기술, 내결함성, 성능 및 캐시 동작 측면에서 서로 다른 특성을 갖습니다.
다음 다이어그램은 마이크로 프런트엔드 아키텍처의 클라이언트 측, 엣지 측 및 서버 측 계층에서 구성이 어떻게 이루어지는지 보여줍니다.
클라이언트 측, 엣지 측 및 서버 측 계층은 다음 섹션에서 설명합니다.
클라이언트 측 구성
클라이언트(브라우저 또는 모바일 웹 보기)에서 마이크로 프런트엔드를 문서 객체 모델(DOM) 조각으로 동적으로 로드하고 추가합니다. JavaScript 또는 CSS 파일과 같은 마이크로 프론트엔드 아티팩트는 지연 시간을 줄이기 위해 콘텐츠 전송 네트워크(CDNs)에서 로드할 수 있습니다. 클라이언트 측 구성에는 다음이 필요합니다.
-
브라우저에서 런타임에 마이크로 프론트엔드 구성 요소를 검색, 로드 및 렌더링할 수 있도록 셸 애플리케이션 또는 마이크로 프론트엔드 프레임워크를 소유하고 유지 관리하는 팀
-
HTML, CSS, JavaScript와 같은 프런트엔드 기술의 높은 기술 수준과 브라우저 환경에 대한 심층적인 이해
-
페이지에 로드된 JavaScript 양 최적화 및 글로벌 네임스페이스 충돌을 방지하기 위한 원칙
다음 다이어그램은 서버리스 클라이언트 측 구성을 위한 예제 AWS 아키텍처를 보여줍니다.
클라이언트 측 구성은 쉘 애플리케이션을 통해 브라우저 환경에서 발생합니다. 다이어그램은 다음 세부 정보를 보여줍니다.
-
쉘 애플리케이션을 로드한 후 Amazon CloudFront에 매니페스트 엔드포인트를 통해 로드할 마이크로 프런트엔드를 검색하도록 초기 요청합니다.
-
매니페스트에는 각 마이크로 프론트엔드에 대한 정보(예: 이름, URL, 버전 및 대체 동작)가 포함됩니다. 매니페스트는 마이크로 프런트엔드 검색 서비스에서 제공됩니다. 다이어그램에서이 검색 서비스는 Amazon API Gateway, AWS Lambda 함수 및 Amazon DynamoDB로 표시됩니다. 쉘 애플리케이션은 매니페스트 정보를 사용하여 개별 마이크로 프런트엔드가 지정된 레이아웃 내에서 페이지를 작성하도록 요청합니다.
-
각 마이크로 프론트엔드 번들은 정적 파일(예: JavaScript, CSS, HTML)로 구성됩니다. 파일은 Amazon Simple Storage Service(Amazon S3) 버킷에서 호스팅되며 CloudFront를 통해 제공됩니다.
-
팀은 자신이 소유한 배포 파이프라인을 사용하여 마이크로 프런트엔드의 새 버전을 배포하고 매니페스트 정보를 업데이트할 수 있습니다.
엣지 측 구성
오리진 서버 앞의 일부 CDNs 및 프록시에서 지원하는 엣지 측 포함(ESI) 또는 서버 측 포함(SSI)과 같은 트랜스클루전 기술을 사용하여 클라이언트에 유선으로 전송하기 전에 페이지를 작성합니다. ESI에는 다음이 필요합니다.
-
ESI 기능이 있는 CDN 또는 서버 측 마이크로 프런트엔드 앞에 프록시 배포. HAProxy, Varnish 및 NGINX와 같은 프록시 구현은 SSI를 지원합니다.
-
ESI 및 SSI 구현의 사용 및 제한에 대한 이해.
새 애플리케이션을 시작하는 팀은 일반적으로 구성 패턴에 엣지 측 구성을 선택하지 않습니다. 그러나이 패턴은 트랜스클루전에 의존하는 레거시 애플리케이션에 대한 경로를 제공할 수 있습니다.
서버 측 구성
오리진 서버를 사용하여 엣지에 캐시되기 전에 페이지를 작성합니다. 이는 PHP, JSP(자카르타 서버 페이지) 또는 템플릿 라이브러리와 같은 기존 기술을 사용하여 마이크로 프런트엔드의 조각을 포함하여 페이지를 구성할 수 있습니다. 서버에서 실행되는 Next.js와 같은 JavaScript 프레임워크를 사용하여 서버의 페이지를 서버 측 렌더링(SSR)으로 구성할 수도 있습니다.
서버에서 페이지를 렌더링한 후 CDNs에 캐시하여 지연 시간을 줄일 수 있습니다. 마이크로 프론트엔드의 새 버전이 배포되면 페이지를 다시 렌더링하고 최신 버전을 고객에게 전달하도록 캐시를 업데이트해야 합니다.
서버 측 구성을 위해서는 서버 환경을 심층적으로 파악하여 배포, 서버 측 마이크로 프런트엔드 검색 및 캐시 관리를 위한 패턴을 설정해야 합니다.
다음 다이어그램은 서버 측 구성을 보여줍니다.
다이어그램에는 다음 구성 요소와 프로세스가 포함되어 있습니다.
-
Amazon CloudFront는 애플리케이션에 고유한 진입점을 제공합니다. 배포에는 두 개의 오리진이 있습니다. 하나는 정적 파일에 대한 오리진이고 다른 하나는 UI 컴포저에 대한 오리진입니다.
-
정적 파일은 Amazon S3 버킷에서 호스팅됩니다. 브라우저와 HTML 템플릿용 UI 작성기에서 사용됩니다.
-
UI 작성기는의 컨테이너 클러스터에서 실행됩니다AWS Fargate. 컨테이너화된 솔루션을 사용하면 필요한 경우 스트리밍 기능과 멀티스레드 렌더링을 사용할 수 있습니다.
-
의 기능인 Parameter Store AWS Systems Manager는 기본 마이크로 프런트엔드 검색 시스템으로 사용됩니다. 이 기능은 UI 작성기가 사용할 마이크로 프런트엔드 엔드포인트를 검색하는 데 사용하는 키-값 저장소를 제공합니다.
-
알림 마이크로 프런트엔드는 최적화된 JavaScript 번들을 S3 버킷에 저장합니다. 이는 사용자 상호 작용에 반응해야 하므로 클라이언트에서 렌더링됩니다.
-
리뷰 마이크로 프론트엔드는 Lambda 함수로 구성되며 사용자 리뷰는 DynamoDB에 저장됩니다. 리뷰 마이크로 프론트엔드는 서버 측에서 완전히 렌더링되고 HTML 조각을 출력합니다.
-
제품 세부 정보 마이크로 프론트엔드는를 사용하는 로우 코드 마이크로 프론트엔드입니다AWS Step Functions. Express 워크플로는 동기식으로 호출할 수 있으며 HTML 조각과 캐싱 계층을 렌더링하기 위한 로직이 포함되어 있습니다.
서버 측 구성에 대한 자세한 내용은 블로그 게시물 서버 측 렌더링 마이크로 프론트엔드 - 아키텍처를 참조하세요