당신은 주제를 찾고 있습니까 “마이크로 프론트 엔드 – [Track 2-4] 원지혁 – 프론트엔드에서의 마이크로 서비스 아카텍처“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 FEConf Korea 이(가) 작성한 기사에는 조회수 2,039회 및 좋아요 62개 개의 좋아요가 있습니다.
Table of Contents
마이크로 프론트 엔드 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 [Track 2-4] 원지혁 – 프론트엔드에서의 마이크로 서비스 아카텍처 – 마이크로 프론트 엔드 주제에 대한 세부정보를 참조하세요
마이크로 프론트 엔드 주제에 대한 자세한 내용은 여기를 참조하세요.
micro-frontend – velog
마이크로 프론트 엔드란 백엔드에서 사용하고 있는 마이크로 서비스 아키텍쳐 처럼 프론트엔드에서 관리하는 서비스를 분리해서 개발, 관리하는 패턴 …
Source: velog.io
Date Published: 4/23/2021
View: 5558
[MEDIUM DAILY DIGEST] 마이크로 프론트엔드 MICRO …
존재한다! 여기서 마이크로 프론트엔드 아키텍쳐가 정말로 빛을 발할 수 있다. 마이크로 프론트엔드는 여러개의 독립적으로 배포가능한 프론트엔드 …
Source: yumyumcoding.tistory.com
Date Published: 10/3/2022
View: 745
Lattice로 마이크로 프론트엔드를 구축하는 법 – 요즘IT
이번 글은 과열되고 있는 OTT 서비스 시장의 영원한 강자 ‘넷플릭스(Netflix)’가 작성한 ‘Lattice로 마이크로 프론트엔드를 구축하는 법’을 번역 …
Source: yozm.wishket.com
Date Published: 1/15/2021
View: 6744
(설계)Micro Frontend – 흥부의 개발블로그
마이크로 프론트엔드란? 특정 기준으로 프론트엔드를 나누는 개발방식으로 프론트앱에 여러 기능과 섹션이 존재하여 통합해서 관리하기 힘들때 사용.
Source: dhdnjswo5000.tistory.com
Date Published: 6/12/2022
View: 1221
Micro-frontend React, 점진적으로 도입하기 – 토스
Day 2. Session. Micro-frontend React, 점진적으로 도입하기. 거대한 모놀리식 Django 프로젝트에 현대적인 프론트엔드 인프라를 구축한 사례를 공유합니다.
Source: toss.im
Date Published: 7/12/2022
View: 8371
리액트를 사용하여 마이크로프론트엔드 개발하는 방법 – 끄적끄적
마이크로엔드들을 컨테이너 앱으로 합치는 방법은 여러가지가 있다. 이러한 방법들은 컴포지션을 사용한 서버사이드에서부터 프론트엔드 빌드 타임에서 …
Source: caramellow.tistory.com
Date Published: 5/30/2021
View: 6784
마이크로프론트엔드를 위한 6가지 패턴 개요 – 블로그 – Quish
마이크로프론트엔드는 새로운 것은 아니지만 확실히 최근의 추세입니다. 2016년에 만들어진 이 패턴은 대규모 웹 앱을 개발할 때 문제가 나타나기 시작하면서 서서히 인기 …
Source: ko.quish.tv
Date Published: 2/3/2022
View: 5362
주제와 관련된 이미지 마이크로 프론트 엔드
주제와 관련된 더 많은 사진을 참조하십시오 [Track 2-4] 원지혁 – 프론트엔드에서의 마이크로 서비스 아카텍처. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 마이크로 프론트 엔드
- Author: FEConf Korea
- Views: 조회수 2,039회
- Likes: 좋아요 62개
- Date Published: 2019. 11. 17.
- Video Url link: https://www.youtube.com/watch?v=FQoNY2W0s4E
Mobile Convergence :: [Micro Frontend] 마이크로 프론트앤드
Micro frontends | Technology Radar | ThoughtWorks
This Technology Radar quadrant explores the techniques being used to develop and deliver software
www.thoughtworks.com
Micro Frontends, 글로 배워보자구요.
반응형
마이크로 프론트앤드는 마이크로 서비스의 개념을 프론트엔드 세계로 확장한 개념이다.
마이크로 서비스처럼 전체 화면을 작동할 수 있는 단위로 나누어 개발한 후 서로 조립하는 방식이다.
Main Concept
기술 독립성
각 작동 단위들은 기술적으로 독립적일 수 있어야 한다.
각 작동 단위에 사용된 프론트앤드 기술(React, Vue, Vanilla JS 등)에 상관 없이 조합이 가능해야 한다.
컨텍스트 독립성
각 작동 단위들이 같은 프레임워크를 사용하더라도, 컨텍스트를 공유해선 안된다.
독립적인 애플리케이션을 자체적으로 구축해야 하고, 상태 공유나 전역 변수에 의존해서는 안된다.
네임스페이스를 활용한 분리
각 작동 단위의 격리가 불가능한 경우, 네이밍 컨벤션에 따라 prefix 등으로 네임스페이스를 활용한다.
CSS, 로컬 스토리지, 이벤트, 쿠키에 네임스페이스를 부여하여 충돌을 방지하고 명확히 분리한다.
통신 시스템에 기본 브라우저 기능 활용
작동 단위 간의 통신을 위한 시스템을 자체 구축하는 것보다, 브라우저 이벤트를 사용한다.
만약 정말로 작동 단위 간 커스텀 API가 필요한 경우, 가능한 한 간단하게 유지한다.
탄력적인 웹 디자인 구축
자바스크립트에서 에러가 나거나 실행할 수 없더라도, 기능은 사용 가능해야 한다.
범용 렌더링(Universal Rendering)과 점진적 향상(Progressive Enhancement)을 통해 성능을 향상시킬 수 있다.
Universal Rendering
Progressive Enhancement
장점
작고, 응집력 있고 유지보수에 용이한 코드베이스를 가질 수 있다. 따라서 디커플링이라는 소프트웨어 개발 목표를 달성한다.
각 마이크로 프런트 엔드는 고유한 기술 및 프레임 워크를 선택할 수 있다. 독립적으로 구현, 테스트, 업그레이드, 업데이트 및 배포 할 수 있어, 팀에 유연성을 제공한다.
프론트앤드 개발을 점진적 업그레이드 또는 재작성이 수월해진다.
마이크로 프런트 엔드는 수직 팀을 장려한다. 수직 팀에는 일반적으로 기능 소유자, UX 디자이너, 제품 관리자, 백엔드 개발자, 프런트 엔드 개발자 및 품질 보증 엔지니어가 포함된다.
단점
마이크로 프런트 엔드는 분리되거나 느슨하게 결합 된 구성 요소를 위해 설계되었다. 그들 사이에 너무 많은 종속성을 넣으려고하면 디버깅 악몽이 발생할 수 있다.
마이크로 프런트 엔드를 가능하게하는 파이프라인으로 인해 복잡도가 증가한다. 외부로드 문제를 해결하려면 기술적 전문 지식이 필요하며 디버깅 프로세스에는 시간이 많이 걸린다. 또한 SSO (Single Sign-On), 글로벌 CSS 등과 관련된 문제에 직면 할 수 있다.
각 마이크로 프런트 엔드에는 중복 된 코드 또는 기능이 있을 수 있다. 예를 들어, React 라이브러리는 각 마이크로 프런트 엔드에 포함될 수 있어, 번들 크기와 메모리 소비를 증가시킨다.
런타임 시 마이크로 프런트 엔드를 동적 또는 지연로드하는 데 추가 시간이 걸린다.
사용자 인터페이스는 여러 팀에서 설계되었으므로 UX 설계는 마이크로 프런트 엔드에서 일관되지 않을 수 있다.
반응형
Micro Frontend 통합 방법
독립적인 개발 및 배포
마이크로 앱들을 개발 후, 어떻게 통합할지 고려해야 한다.
여러 방식이 있는데, 공통적으로 존재하는 아키텍처가 있다.
일반적으로 마이크로 애플리케이션들이 있고(작동 단위), 그것들을 구성하는 단일 컨테이너 애플리케이션이 있다.
단일 컨테이너 애플리케이션은 다음과 같은 것들을 한다.
공통 페이지 요소를 렌더링한다.
인증 및 탐색과 같은 공통적으로 고려되어야 하는 문제들을 해결한다.
다양한 마이크로 앱들을 페이지에 모으고, 각 앱들에게 언제 어디서 렌더링할지 알려준다.
서버 사이드 템플릿 통합
각 서버로 html 템플릿을 요청하고, 최종 응답서버에서 각 템플릿을 조합해서 응답을 보낸다. 서버측에서 최종 화면을 조합한다. (SSR 에 적용)
코드로 살펴보자.
아래와 같이 범용적인 페이지 요소들을 포함하는 index.html 파일을 만든다. 이 파일에는 HTML fragment 파일들이 서버사이드에서 포함되어진다(넣어진다).
Feed me 🍽 Feed me
Nginx를 사용하여 아래 파일을 제공하고, 요청되는 URL이 $PAGE 변수에 대입되도록 구성한다.
server { listen 8080; server_name localhost; root /usr/share/nginx/html; index index.html; ssi on; # Redirect / to /browse rewrite ^/$ http://localhost:8080/browse redirect; # Decide which HTML fragment to insert based on the URL location /browse { set $PAGE ‘browse’; } location /order { set $PAGE ‘order’; } location /profile { set $PAGE ‘profile’ } # All locations should render through index.html error_page 404 /index.html; }
위와 같은 방식은 상당히 표준적인 서버측 구성 방식이다.
여기엔 어떻게 여러 개의 HTML 파일들이 웹 서버에 배치되는지는 나와있지 않지만, 각 파일들은 다른 페이지들을 고려하거나 다른 페이지들에게 영향을 미치지 않는다고 가정한다. 또한, 각각이 독립적인 배포 파이프라인을 가진다고 가정한다.
독립성을 높이기 위해, 각 마이크로 앱들을 렌더링하고 서비스하는 별도의 서버가 있을 수 있으며, 한 서버는 한 마이크로 앱에 요청을 한다. 또한 응답 캐싱을 통해 지연 시간에 영향을 주지 않고 작업을 수행하도록 할 수 있다.
각 서버는 독립적으로 빌드 및 배포할 수 있음
빌드타임 통합
마이크로 프론트엔드를 패키지로 배포하고, 컨테이너 앱이 그것들을 라이브러리 종속성(library dependencies)으로 포함하도록 하는 것이다.
코드로 살펴보면, 아래와 같은 package.json이 작성될 수 있다.
{ “name”: “@feed-me/container”, “version”: “1.0.0”, “description”: “A food delivery web app”, “dependencies”: { “@feed-me/browse-restaurants”: “^1.2.3”, “@feed-me/order-food”: “^4.5.6”, “@feed-me/user-profile”: “^7.8.9” } }
이 방식은 배포 가능한 단일 Javascript 번들을 생성한다. 그리고 다양한 공통 종속성을 제거할 수 있다.
하지만 이 접근 방식은 각각의 마이크로 앱에 변경사항이 있을 때마다, 그 변경사항을 반영한 단일 번들을 만들기 위해 다시 컴파일하고 릴리즈해야 한다.
애플리케이션을 개별 코드베이스로 나누는 많은 문제들을 해결해놓고, 다시 릴리즈 단계에서 커플링하는 방식은 제외하자. 마이크로 프론트엔드를 빌드타임이 아닌 런타임에 통합하는 방법을 찾아야 한다.
iframe을 통한 런타임 통합
전통적인 방식이면서 가장 쉬운 방식이다.
iframe을 사용하면 각 마이크로 페이지들을 독립적인 하위 페이지로 쉽게 만들 수 있다. 스타일과 글로벌 변수가 서로 간섭하지 않는다는 측면에서 상당한 수준의 고립성을 제공한다.
Feed me! Welcome to Feed me!
새로운 기술이 아니라서 흥미롭지 않을 수 있지만, 마이크로 프론트엔드의 이점을 상기해본다면, 애플리케이션 분할과 팀을 구조화하는 데에 신경쓴다면, 이 방식이 가장 적합하다.
Iframe 방식을 선택하는 것을 꺼리는 경우가 종종 있는데, 사실 그런 데에는 타당한 이유가 있다. 이 방식을 통한 분리는 쉽지만, 다른 옵션들보다 유연성이 떨어지는 경향이 있다.
이 방식은 어플리케이션의 서로 다른 부분들을 통합 구축하는 것이 어렵다. 따라서 라우팅, 히스토리, deep linking이 더욱 복잡해지고, 반응형 페이지 개발에도 추가적인 어려움들이 따른다.
UX가 iframe안에 갇히기 때문에 어색한 UI 표현을 가질 수 있다.
Javascript를 통한 런타임 통합
iframe과 달리 유연한 통합이 가능하다. 현실적으로 가장 많이 사용하는 방식이다.
각 마이크로 앱들은