기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
정렬을 통한 자율성 균형 조정
마이크로 프런트엔드 아키텍처는 팀 자율성에 크게 편향되어 있습니다. 그러나 문제 해결을 위한 유연성과 다양한 접근 방식을 지원할 수 있는 영역과 표준화가 필요한 영역을 구분하여 조정하는 것이 중요합니다. 고위 리더와 아키텍트는 이러한 영역을 조기에 식별하고 투자를 우선시하여 마이크로 프런트엔드의 보안, 성능, 운영 우수성 및 신뢰성의 균형을 맞춰야 합니다. 이 균형을 찾으려면 마이크로 프런트엔드 생성, 테스트, 릴리스 및 로깅, 모니터링 및 알림이 필요합니다.
마이크로 프런트엔드 생성
모든 팀이 최종 사용자 성능 측면에서 이점을 극대화하도록 강력하게 조율하는 것이 가장 좋습니다. 실제로 이는 어려울 수 있으며 더 많은 노력이 필요할 수 있습니다. 여러 팀이 공개적이고 투명한 토론을 통해 기여할 수 있는 몇 가지 서면 지침부터 시작하는 것이 좋습니다. 그런 다음 팀은 프로젝트를 스캐폴드하는 통합 방법을 제공하는 도구 생성을 지원하는 Cookiecutter 소프트웨어 패턴을 점진적으로 채택할 수 있습니다.
이 접근 방식을 사용하면 의견과 제약 조건으로 베이크할 수 있습니다. 단점은 이러한 도구의 생성 및 유지 관리에 상당한 투자가 필요하고 개발자 생산성에 영향을 주지 않고 블로커를 신속하게 처리해야 한다는 것입니다.
마이크로 프런트엔드End-to-end 테스트
단위 테스트는 소유자에게 맡길 수 있습니다. 초기에 전략을 구현하여 고유한 셸에서 실행되는 마이크로 프런트엔드를 교차 테스트하는 것이 좋습니다. 전략에는 프로덕션 릴리스 전후에 애플리케이션을 테스트하는 기능이 포함되어 있습니다. 중요한 기능을 수동으로 테스트하기 위해 기술 및 비기술 인력을 위한 프로세스와 설명서를 개발하는 것이 좋습니다.
변경으로 인해 기능 또는 비기능 고객 경험이 저하되지 않도록 하는 것이 중요합니다. 이상적인 전략은 주요 기능과 보안 및 성능과 같은 아키텍처 특성에 대한 자동화된 테스트에 점진적으로 투자하는 것입니다.
마이크로 프런트엔드 해제
각 팀은 코드를 배포하고, 의견을 수렴하고, 인프라를 자체적으로 구축할 수 있습니다. 이러한 시스템을 유지 관리하는 데 드는 복잡성 비용은 일반적으로 방지 효과가 있습니다. 대신 공유 도구로 적용할 수 있는 공유 전략을 구현하기 위해에 조기에 투자하는 것이 좋습니다.
선택한 CI/CD 플랫폼을 사용하여 템플릿을 개발합니다. 그런 다음 팀은 사전 승인된 템플릿과 공유 인프라를 사용하여 프로덕션에 대한 변경 사항을 릴리스할 수 있습니다. 초기 테스트 및 통합 기간 후에는 이러한 시스템에 중요한 업데이트가 거의 필요하지 않으므로이 개발 작업에 조기에 투자할 수 있습니다.
로깅 및 모니터링
각 팀은 운영 또는 분석 목적으로 추적하려는 다양한 비즈니스 및 시스템 지표를 가질 수 있습니다. 여기에도 Cookiecutter 소프트웨어 패턴을 적용할 수 있습니다. 이벤트 전송을 추상화하여 여러 마이크로 프런트엔드가 사용할 수 있는 라이브러리로 사용할 수 있습니다. 유연성의 균형을 맞추고 자율성을 제공하려면 사용자 지정 지표를 로깅하고 사용자 지정 대시보드 또는 보고서를 생성하기 위한 도구를 개발합니다. 보고는 제품 소유자와의 긴밀한 협업을 촉진하고 최종 고객 피드백 루프를 줄입니다.
제공을 표준화하면 여러 팀이 협력하여 지표를 추적할 수 있습니다. 예를 들어 전자 상거래 웹 사이트는 "제품 세부 정보" 마이크로 프론트엔드에서 "카트" 마이크로 프론트엔드, "구매" 마이크로 프론트엔드까지의 사용자 여정을 추적하여 참여, 이탈 및 문제를 측정할 수 있습니다. 각 마이크로 프런트엔드가 단일 라이브러리를 사용하여 이벤트를 기록하는 경우이 데이터를 전체적으로 사용하고, 전체적으로 탐색하고, 통찰력 있는 추세를 식별할 수 있습니다.
알림
로깅 및 모니터링과 마찬가지로 유연성이 확보된 표준화를 통해 알림을 받을 수 있습니다. 팀마다 기능적 알림과 비기능적 알림에 다르게 반응할 수 있습니다. 그러나 모든 팀이 공유 플랫폼에서 수집 및 분석되는 지표를 기반으로 알림을 시작할 수 있는 통합 방법이 있는 경우 비즈니스는 팀 간 문제를 식별할 수 있습니다. 이 기능은 인시던트 관리 이벤트에서 유용합니다. 예를 들어 다음과 같은 방법으로 알림을 시작할 수 있습니다.
-
특정 브라우저 버전에서 JavaScript 클라이언트 측 예외 수 증가
-
지정된 임계값을 초과하여 크게 저하된 렌더링 시간
-
특정 API를 사용할 때 승격된 5xx 상태 코드 수
시스템의 성숙도에 따라 다음 표와 같이 인프라의 여러 부분에 대한 노력의 균형을 맞출 수 있습니다.
채택 |
연구 및 개발 |
상승 |
성숙도 |
---|---|---|---|
마이크로 프런트엔드를 생성합니다. |
학습 내용을 실험, 문서화 및 공유합니다. |
새로운 마이크로 프런트엔드를 스캐폴드하기 위한 도구에 투자합니다. 채택을 복음화합니다. |
스캐폴딩을 위한 통합 도구입니다. 도입을 위해 푸시합니다. |
마이크로 프런트엔드 엔드 투 엔드를 테스트합니다. |
모든 관련 마이크로 프런트엔드를 수동으로 테스트하기 위한 메커니즘을 구현합니다. |
자동화된 보안 및 성능 테스트를 위한 도구에 투자합니다. 기능 플래그 및 서비스 검색을 조사합니다. |
서비스 검색, 프로덕션 테스트 및 자동화된 end-to-end 테스트를 위한 도구를 통합합니다. |
마이크로 프런트엔드를 릴리스합니다. |
공유 CI/CD 인프라와 자동화된 다중 환경 릴리스에 투자합니다. 채택을 복음화합니다. |
CI/CD 인프라용 통합 도구 수동 롤백 메커니즘을 구현합니다. 도입을 위해 푸시합니다. |
시스템 및 비즈니스 지표와 알림을 기반으로 자동 롤백을 시작하는 메커니즘을 생성합니다. |
마이크로 프런트엔드 성능을 관찰합니다. |
시스템 및 비즈니스 이벤트를 일관되게 로깅하기 위해 공유 모니터링 인프라 및 라이브러리에 투자합니다. |
모니터링 및 알림을 위한 도구를 통합합니다. 팀 간 대시보드를 구현하여 일반적인 상태를 모니터링하고 인시던트 관리를 개선합니다. |
로깅 스키마를 표준화합니다. 비용에 최적화합니다. 복잡한 비즈니스 지표를 기반으로 알림을 구현합니다. |