SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
SEOUL
SEOUL
SEOUL
AWS 기반 마이크로 프론트엔드
아키텍처 구축하기
김은수 | Grepp
SEOUL
김은수(Eunsu Kim)
- 현) Grepp(프로그래머스) Frontend Developer
- 전) Mathpresso(콴다) Frontend Developer
SEOUL
마이크로 프론트엔드란?
SEOUL
마이크로 프론트엔드(Micro Frontend)란?
“별도로 개발 및 배포 가능한 여러 작은 웹 애플리케이션을 조합하여
하나의 웹 애플리케이션을 만드는 개발 방법론”
SEOUL
예시) E-commerce 웹 사이트
SEOUL
- Micro Frontends in Action(Michael Geers)
- “The idea behind Micro Frontends is to think about a
website or web app as a composition of features
that are owned by independent teams. Each team
has a distinct area of business or mission it cares
about and specializes in. A team is cross-
functional and develops its features end-to-end,
from database to user interface.”
마이크로 프론트엔드(Micro Frontend)란?
SEOUL
마이크로 프론트엔드 등장 배경
- 모놀리식 웹 애플리케이션을 개발하면서 마주하는 문제들
- 증가하는 빌드 및 배포 시간
- 모듈 간 결합도 증가
- 시간이 지날수록 쌓이는 레거시 코드
- 업데이트하기 두려운 의존성 라이브러리
SEOUL
- 더 작고 응집도 높은 코드베이스
- 빠른 빌드/배포 시간
- 유지보수가 쉬움
- 애플리케이션을 보다 쉽게 업데이트 할 수 있음
- 독립적인 배포가 가능
- 팀 간 결합도는 낮추고 각 팀이 더 자유롭게 의사결정을 내릴 수 있음
마이크로 프론트엔드의 장점
SEOUL
마이크로 프론트엔드의 단점
- 의존성의 중복으로 사용자가 더 많은 번들을 다운받아야 할 수 있음
- 더 많은 개발 및 운영 코스트가 들 수 있음(ex. 더 많은 레포, 툴,
빌드/배포 파이프라인, 서버, 도메인 등)
- 여러 애플리케이션 간 일관된 UX를 제공할 수 있도록 노력해야 함
SEOUL
마이크로 프론트엔드 아키텍처 구현
SEOUL
- Build-time composition
- shared library(ex. npm package)
- Run-time composition
- Client-side composition
- iframe
- Javascript(ex. single-spa)
- Webpack 5 Module Federation
- Edge-side / Server-side composition
- Lambda@Edge(AWS re:Invent 2019: Building serverless micro frontends at the
edge)
마이크로 프론트엔드 아키텍처 구현 방법
SEOUL
- 모든 애플리케이션은 컨테이너
- Host / Remote 컨테이너로 구분
- Host 컨테이너
- Remote 컨테이너의 자바스크립트 모듈을 불러와 사용하는 컨테이너
- Remote 컨테이너
- 자바스크립트 모듈을 다른 컨테이너에서 사용할 수 있도록 노출(expose)하는
컨테이너
Webpack 5 Module Federation
App Header
expose
Host Remote
SEOUL
데모 프로젝트 살펴보기
SEOUL
데모 프로젝트 다이어그램
SEOUL
데모 프로젝트 다이어그램
SEOUL
데모 프로젝트 아키텍처 다이어그램
SEOUL
AWS CDK
SEOUL
데모 프로젝트 함께보기
- 디렉토리 구조 파악
- packages, cdk, lambda handler
- Webpack Module Federation 플러그인 설명
- 로컬 시연
- 독립적인 개발, 빌드 및 배포
- 프로덕션 시연
SEOUL
Micro Frontend is all about Team
Frontend
Backend
Data 팀
Feed
서비스
app-feed
미션
체류 시간
클릭률 증가
팀
Order
서비스
app-order
미션
구매 전환
증가
SEOUL
- Source code: https://github.com/eunsukimme/micro-frontend-on-aws
- DEMO URL: https://dl120itgchg9q.cloudfront.net
데모 프로젝트 링크
SEOUL
Recap
- 마이크로 프론트엔드는 여러 작은 웹 애플리케이션을 조합하여 하나의
웹 애플리케이션을 만드는 방법론
- 각 애플리케이션은 독립적으로 개발 및 배포가 가능
- Webpack 5 Module Federation을 이용하면 Client-side composition을
손쉽게 구현이 가능
- AWS S3, CloudFront, Lambda@Edge를 사용하여 Client-side
composition 마이크로 프론트엔드 아키텍처를 구축할 수 있음
- 마이크로 프론트엔드 아키텍처는 제품 개발 영역 뿐만 아니라 조직
구조에도 긍정적인 영향을 줌
SEOUL
- https://martinfowler.com/articles/micro-frontends.html
- https://javascript.plainenglish.io/whats-the-difference-between-a-component-
and-a-micro-frontend-43aefd0af062
- https://github.com/santoshshinde2012/micro-frontends-mindmaps
- https://youtu.be/0Eq6evGKJ68
- https://levelup.gitconnected.com/a-complete-aws-architecture-for-module-
federated-micro-frontends-a0306ba466e3
- https://micro-frontends.org/
- https://www.trendmicro.com/ru_ru/devops/21/h/micro-frontend-guide-technical-
integrations.html
- https://microfrontends.info/microfrontends/
References
SEOUL
Thank you
@eunsukimme
@eunsukimme
@eunsukimme
SEOUL

Mais conteúdo relacionado

Mais procurados

마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

Mais procurados (20)

From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Microservices
MicroservicesMicroservices
Microservices
 
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1
 
신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판
 
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
 
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
Why Microservices
Why MicroservicesWhy Microservices
Why Microservices
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 

Semelhante a AWS 기반 마이크로 프론트엔드 아키텍처 구축하기

Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process
uEngine Solutions
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
uEngine Solutions
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
draghome
 

Semelhante a AWS 기반 마이크로 프론트엔드 아키텍처 구축하기 (20)

[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
 
WeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfWeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdf
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
 
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 

Último

Último (7)

공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

AWS 기반 마이크로 프론트엔드 아키텍처 구축하기