SlideShare a Scribd company logo
1 of 73
소프트웨어 개발 트랜드와
마이크로 서비스 아키텍쳐
피키캐스트 CTO
조대협
발표자 소개
조 대 협 본명: 조병욱
회원 13만명 온라인 개발자 커뮤니티 자바스터디(www.javastudy.co.kr) 운영자.. (기억의 저편..)
한국 자바 개발자 협회 부회장,서버사이드 아키텍트 그룹 운영자
벤쳐 개발자
BEA 웹로직 기술 지원 엔지니어
장애 진단, 성능 튜닝
NHN 잠깐
오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0,대용량 분산 시스템)
MS APAC 클라우드 수석 아키텍트
프리렌서 (잘나가는 사장님)
삼성전자 무선 사업부 B2B팀 Chief Architect
현 피키캐스트 CTO로.. 열심히 세상을 즐겁게 만드는 중….
피키캐스트
회사 개요
• 2012년 12월 설립
• 전체 150명
• 1000만 다운로드, 월 600만명 방문, 일 150만명 방문
• 10대~20대 주요 타켓
• 컨텐츠 큐레이션 서비스
• 세상을 즐겁게 만드는 것을 목표로 열심히 일하고 있음…
개발실 개요
• 18명 개발자+중국 5명 (연말 30명 목표)
• 인스타그램처럼 작고 빠른 팀을 지향
• 목표 3년내에 모두 페이스북에 취직하자!!
• 괴수 집단 (책을 쓰거나.. 세미나에서 유명하거나… 전문 블러거이거나… 오픈소스 커
미터이거나…)  아니라도 됨… 잘하믄 됨.. (열심히 하는 사람 시러함..)
• 개발 트랜드의 변화개발 프로세스
• 마이크로 서비스 아키텍쳐 (aka. MSA)
오늘 할 이야기
요즘 실리콘 밸리에서는
잘하는 것 부터 시작해서 발전
대세는 스크립트 언어
스스로 공부,스스로 개발,내재화
소규모 조직 [10~20명]
대우 받는 개발자
클라우드 컴퓨팅
빠른 시장 진입,저비용,누구나 서비스
젊은 개발자 (한국은 접는 개발자)
협업
[SNS,오픈소스,GitHub]
CI to CD
유연한 고용 시장
메뚜기!!
3년 넘으면 바보
한국은 배신자
개발자의 변신은 무죄
새로운 능력..!! 잉여력STAR UP
요즘 실리콘 밸리에서는
대세는 수퍼 개발자!!
3가지 관점에서 트랜드를 분석
소프트웨어 개발
중심의 변화
시대별 기술의
변화
개발 방식의
변화
소프트웨어 개발 중심의 변화
시대별로 소프트웨어를 개발하는 이유가 어떻게 변화 했을까?
우리가 지금 쓰는 기술들은 왜?
소프트웨어 개발 중심의 변화
인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대
서비스 사업자
대단한 님들!!
벤더
개발자!!
(스타트업,앱개발자)
 당신도 할 수 있다
기술 변화의 주체
시대별 기술의 변화
시대별 기술의 변화
인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대
EJB, JAVA, SERVLET/JSP
들어는 보셨나요?
벤더 : “이게 최신 기술임!!.
교육 부터 다 해드림!!
나만 믿으세요” $$$
먹고 살 걱정 없음!!
Spring,Hibernate,MySQL
,Struts,Ruby On
Rails,PHP ..
서비스사 : 제품은 비싸요.
우리가 만든거 가져다 쓰
세요!! 대신 책임은 니꺼!
공부해야 함.. 압박!!
조금씩 먹고 살기 힘들어짐
(버틸만 함-그래도 대세는 있음)
JavaScript,
Cloud,node.js, Ruby
on Rails,NoSQL
개발자:어려워서 못 써
먹겠음. 차라리 만듬..!!
기술 변화도 심함
이제는 생존의 문제!!
명퇴가 눈앞에..
시대별 기술 변화
인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대
UNIX 서버
벤더 소프트웨어
X86 서버
오픈소스
클라우드
오픈소스
스크립트 언어!!
ORACLE MySQL NoSQL
API
HTML 5
안드로이드,IOS웹웹,4GL
쉽고 빠른 개발
기술의 홍수
대체제 성격
새로운 기술 흐름을
만드는 전환기
안정성,미션 크리티
컬 업무 위주
• 왜 이런 현상이 생기는가? 쉬운 기술이 주목 받는 이유
스타트업. 앱 개발
시대별 기술자
조합 1.
기획자 창업
디자이너 - 기획자 여자 친구
개발자 – 기획자의 친구 (디자이너를 사랑함)
조합 2.
디자이너 창업
기획자 - 디자이너의 여자 친구
개발자 – 디자이너의 친구 (기획자를 사랑함)
개발자 1인 혼자 다 해야함 (클라이언트, 서버, 하드웨어 인프라)
배우기 쉬워야 함
돈 떨어지기전에 시장 출시해야함
빨리 배울 수 있어야함
수많은 앱들 / 치열한 경쟁
시장 현황
빠른 출시, 빠른 업데이트가 필요
요구 되는 기술
빠른 출시, 빠른 업데이트가 필요
쉬운 기술 필요
낮은 비용
클라우드
컴퓨팅
스크립트
언어
운영 효율화
Devops
자동화
• 클라우드 컴퓨팅이 가져다준 변화
– 저비용으로 시작 가능
– 무제한적 리소스
– 지역/시간 제약에서 자유로워짐
– 쉽다. 하드웨어 인프라에 대한 작업이 없어짐
개발자가 인프라를 핸들링 가능
클라우드 컴퓨팅
클라우드 컴퓨팅
빠른 시장 진입
운영비 절감
초기 투자비 절감
유연한 자원 사용
(Auto Scale Out)
느려요
IO Performance
싸지 않아요
기존 솔루션이 안돌아요
장애가 납니다. 아주 잘!!
(멀티 데이타 센타 설계)
클라우드 컴퓨팅의 장점 설계시 고려 사항
• 고려해야 하는 것들
Devops = Development + Operation (개발 + 운영)
Devops의 등장
개발과 운영 조직을 하나로 묶어서 원할한 의사 소통
빠른 반영, 빠른 피드백 반영 가능
• 흔한(평범한) 개발 환경 시나리오
– 개발자가 아침에 출근해서
– 이클립스를 키고, 소스코드를 Git에서 Check Out 한후
– JIRA를 통해서 오늘 할당된 작업을 확인 한후에 코딩을 하고
– PC에서 Junit등을 이용하여 단위테스트등을 모두 끝 마치고
– 코드를 Git에 Commit하면
– Jekins에서 코드 변경을 감지하여, 자동으로 Check Out해서 mvn을 이용
해서 컴파일 하고, 테스트 서버에 배포해서 단위 테스트를 모두 수행하고,
코드의 라인커버리지를 분석하여 리포팅 한다.
– 팀장은 빌드가 완료되었음을 확인하고, 단위 테스트 100% 완료 및 라인
커버리지 80% 완료를 확인한다.
– 릴리즈 날짜가 오면, 배포 엔지니어는 별도의 작업 없이 Jenkins에서 빌드
된 그날 WAR를 확인하고, Fabric으로 된 배포 스크립트를 수행하면, 자동
으로 개발,QA 환경으로 배포가 되고, 환경별로 필요한 resource 파일들이
자동으로 customization해서 배포가 완료된 후, Junit 기반의 단위 테스트,
SOAP UI 기반의 REST API 테스트, Seleniuem 기반의 UI 테스트까지 자동
으로 완료 한다. 만약에 배포나 테스트가 실패하면, 이전 버전으로 자동
롤백한다.
자동화
• 빌드 자동화, 테스트 자동화, 배포 자동화
자동화
DEV QA STAGE
테스트完
가상화 or 클라우드
필요할때만 전개
릴리즈
연계시스템
클라이언트
단말(모바일)
자동 빌드 배포 시스템
Python Fabric
Ruby Capistrano
mvn & RPM
리포지토리
rpm
Ruby on Rails, Python,PHP
대세는 node.js
스크립트 언어
아키텍쳐 스타일의 변화
중앙 집중형
고가용성(HA)
분산형
Resilience
트랜젝션 보장 장애 허용
한정된 용량 대용량
목표 성능 한계 성능
엔터프라이즈 시대 모바일 시대
먹고 살기 좋던 시절 요즘
RMI,WebService REST OPEN API
개발 방식의 변화
정보 습득 방식의 변화
벤더 교육 센터 제품 메뉴얼 책
책
온라인 메뉴얼
블로그
찾아보기
물어보기(영어로…)
중수
코드 까보기
고수
네이버?
개발 방식의 변화
벤더가 시키는데로
솔루션에 포함된 예제 보고
책 예제 보고
진리를 깨우치고
물어보고
다른데 프로젝트 했던 SI 불러서
그럴 시간 없음….
Copy & Paste
Stack overflow
하는데 까정 해본다. 시간 없음
기술 검증 PoC,BMT
똑똑하면 소스 깐다.
Trial & Error
• 1단계 스타트업!!
단계별 개발 모델의 변화
스타트업
• 2단계 펀딩 받았다.
단계별 개발 모델의 변화
성숙된 개발 조직
• 3단계 깨달았다.
단계별 개발 모델의 변화
CD & DEVOPS
개발 방법론
<Insert Picture Here>
그래서…
저명한 박사님들께서.. 방법론을 만드시니..
RUP,CBD,CMMI
개발 방법론
But…
그러나 현실은
 방법론은 방법론…
 우리는 조금 더 현실적인 방법론이 필요합니다.
개발 방법론
실용주의 방법론
구세주 등장!!
• 실용주의 방법론
• Erich Gamma, Joel Spolsky, Kent beck, Andrew Hunt
• Iterative & Incremental
• 애자일 기반
• 기존 방법론과 차이
• 요구 사항이 변화할 것을 가정
• 에러가 있을 것을 가정하여, 자주 테스트
• 협업과 커뮤니케이션
개발 방법론
• 대표적인 개발 방법론
스크럼이 대세!!
관리자 입장에서는 예측 불가
조직에 맞게 바꿔서 쓰세요
http://agilescout.com/learn-more-agile-software-
development-methods-this-year/
개발 방법론
아시는 분들은 이미 알고, 자료도 많으니 모르시는 분들은
이것만도 7박 8일은 이야기 할 수 있으니, Scrum 만 기억해 가세요
• 핵심은
개발 방법론
요구 사항은 변한다…
변하는게 나쁜게 아니라 고객은 배우면서 성장한다.
그러니 당연하게 바뀐다.
결국은 사람이 답이다.
커뮤니케이션을 원할하게 하는 방향으로 변화
역할과 원칙, 프로세스를 잊지 마라
안그러면 망한다. 애자일은 무슨~~
팀모델의 변화
• 기술 분류에 따른 팀 (Functioanl Team)
– 프론트,백앤드,앱,운영,QA 등
팀모델의 변화
모바일 앱
백앤드
웹 페이지 관리도구
댓글 포스팅 댓글 포스팅
앱개발팀 프론트 개발팀
백앤드 개발팀
• Cross functional Team (Product based)
– 한팀내에 프론트,백앤드,앱,운영,QA를 다 넣음
– MSA에 적용되는 팀모델
팀모델의 변화
• Cross functional Team (Product based)
– Product 간에 복잡한 코디네이션이 필요함
– Program manager, Chief Architect 등
팀모델의 변화
• Cross functional team (Feature based)
– 기능 단위로 팀을 묶고, 한팀이 전체 컴포넌트를 개발
– 플랫폼화 필수 (쉽게 기능 추가가 필요한 구조)
팀 모델 변화
MSA의 기본 개념 이해
• 모노리틱 아키텍쳐 (통서버)
전통적인 아키텍쳐 스타일
• 하나의 서버에 모든 비지니스 로직이 들어가 있는 형태
• 하나의 중앙 집중화된 데이타 베이스에 모든 데이타가 저
장됨
• 단점
– 여러개의 기술을 혼용해서 사용하기 어려움 (node.js , Ruby, Python etc)
– 배포 및 재기동 시간이 오래 걸림
– 수정이 용이하지 않음 (타 컴포넌트 의존성)
• 장점
– 기술 단일화
– 관리 용이성
전통적인 아키텍쳐 스타일의 장단점
• 시스템을 여러개의 독립된 서비스로 나눠서, 이 서비스를 조합함으로서 기능
을 제공하는 아키텍쳐 디자인 패턴
• SOA의 경량화 버전 (실패한다면 실패하는 이유도 같음)
마이크로서비스 아키텍쳐란?
서비스란?
– 단일된 기능 묶음으로 개발된 서비스 컴포넌트
– REST API등을 통하여 기능을 제공
– 데이타를 공유하지 않고 독립적으로 가공 저장
사용자 관리 인터페이스
• REST
• Thrift,Protocol buffer
• AMQP
• :사용자 데이타
• 하나의 기능을 구현 하는데, 여러개의 서비스를 조합하여 기능을 제공
예) 주문 하기 : 사용자 정보 조회, 상품 정보 조회, 신규 주문 생성
서비스 조합
사용자 관리
상품 관리
주문 관리
쇼핑몰 웹
API CALL
사용자정보
상품정보
주문정보
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
쇼핑몰 웹
API CALL
모노리틱
아키텍쳐
마이크로 서비스
아키텍쳐
• 마이크로 서비스 아키텍쳐는 서비스 별로 다른 기술 스택을 사용할 수 있음
기술 스택
사용자 관리
(JAVA)
상품 관리
(node.js)
주문 관리
(JAVA)
사용자 정보
(Cassandra)
상품 정보
(MySQL)
주문 정보
(CouchBase)
쇼핑몰 웹
API CALL
장점일까?
• 운영 관점에서 여러가지 기술을 동
시에 다뤄야 함
(Devops – You build, You run)
• 사람이 떠나면 보수 불가
(Product not a project)
단점일까?
• 적절한 기술을 적절하게 배치 가능
o 복잡한 데이타 RDBMS, 양이
많은 고속 데이타 NoSQL
o C10K NoSQL, 빠른 개발 스크
립트 언어, 튼튼한 시스템은 자
바 …
• 컨웨이의 법칙
– 뼈저리게 느낌
팀 모델
“소프트웨어의 구조는 그 소프트웨어를 만드는 팀
의 구조와 일치한다.”
설계 백날 잘해야 소용없음
제대로 된 팀 구조를 만드는 것이 설계 (그 다음은 알아서 됨 ?)
• 친한팀 컴포넌트끼리는 개발이 잘됨. 그러다 보니 그쪽으로 기능이 몰림
• 잘하는 팀한테 자꾸 중요 기능이 몰림
서비스 컴포넌트들이 균등하게 디자인 되지 않음
• 분산형 거버넌스 (각 팀이 알아서. 적합한 기술, 스스로 하기)
• You build & You run!!
• Self Organized Team
• Product vs Project
• Cross functional team
• Alignment (소통!!)
팀 모델
• 팀간 조율이 핵심
– 새로운 조율자 ROLE이 요구됨
팀 모델
프로그램 메니져 : 팀간 일정 조율
치프 아키텍트 : 서비스간 흐름 정의, 표준 정의, 에러 추적/처리 방법 정의
MSA 설계 패턴
• 일반적인 마이크로 서비스 아키텍쳐 스택 구조
마이크로 서비스 아키텍쳐 토폴로지
API gateway
Service orchestration
(mediation, aggregation)
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
생략 가능 영역
• API 게이트 웨이 : API의 single end point
• Common APIs : 범용 API
• Orchestration : 여러 API를 묶어서, 요구 사항에 맞
는 로직을 구현
• Service Orchestration
규모가 커질 수 록 추가되는 계층들 (오케스트레이션, API 게이트 웨이)
1단계
2단계
3단계
쇼핑몰 API
서버
서비스 오케스트레이션 계층 활용
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
앱 또는 자바스크
립트 클라이언트
API CALL
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
API CALL
클라이언트
API CALL
클라이언트에서 직접 서비
스를 조합 하는 방식
별도의 조합 계층(Orchestration or Mediation)
을 넣는 방식
다른 프로토콜 사용 가능
ex)내부 PB, 외부 REST
• API가 범용적으로 잘 짜야 있어야함
• 클라이언트 팀이 모든 컴포넌트팀과
조율이 필요
규모가 크지 않은 구조에서 효과적
• 중간에 API를 커스터마이제이션 또는 조합
하는 계층을 별도로 둠
• 클라이언트팀은 조합 API 개발팀과 커뮤니
케이션만 하면 됨
• 클라이언트 요구 사항에 기민하게 대처
• 그러나 계층은 하나 더 늘어남 (성능,디버
깅,배포)
일정 규모 이상. 특히 클라이언트
가 여러개인 구조에 효과적
• API 인증/인가
• 로깅
• 라우팅
• 메시지 변환
• 메시지 프로토콜 변환
:
API 게이트 웨이
API 서버 API 서버 API 서버
데이타 데이타 데이타
API 게이트 웨이
• 클라이언트와 API 서버 앞에서 일종의 프록시 처럼 위치 하여 다양한
기능을 수행함
• SOA ESB (Enterprise Service Bus)의 단순화 버전
• 있으면 좋음. 없어도 됨
• 만들 수 있는 실력있으면, 쓰는게 좋음
• 잘못 쓰면 망하는 지름길
API 게이트 웨이
• 인증,인가의 단일화
API 게이트웨이를 이용한 설계 패턴 #1
IDM
(계정관리)
API 토큰
관리
클라이언트
API
게이트 웨이
API
서버
1. API 토큰 발급 요청
2. 사용자 인증/인가
3. API 호출
5. API 호출
4. API 토큰 인증
• 멀티 앤드포인트와 멀티 프로토콜 제공
API 게이트웨이를 이용한 설계 패턴 #2
<그림. 다양한 디바이스로 부터 정보를 수집하는 IOT시스템에 타입별 앤
드 포인트 제공하는 예제>
• MEP (Message Exchange Pattern) 변화
API 게이트웨이를 이용한 설계 패턴 #2
• 오케스트레이션
API 게이트웨이를 이용한 설계 패턴 #3
• ESB 기반 SOA 프로젝트가
실패한 대부분의 원인 (안
하는게 좋음)
• 오케스트레이션 서버를 별
도로 두는게 좋음
API 게이트웨이를 이용한 설계 패턴 #4
• 메세지 기반 라우팅
– 글로벌 배포 시스템에 유용함
– 멀티 버전 시스템 (레거시 업그레이드)에 유용
• Cross Cutting Concern (공통 기능) 처리
– 인증,로깅등 공통 기능 처리
– API 개발팀은 비지니스 로직에 집중할 수 있도록 해줌
API 게이트웨이를 이용한 설계 패턴 #5
• 다중 API 게이트 웨이 패턴
– 내부,외부용 API 게이트웨이 분리
API 게이트웨이를 이용한 설계 패턴 #6
• API 호출용 엔드포인트와 스트리밍 (파일)용 엔드포인트 분리
API 게이트웨이를 이용한 설계 패턴 #7
• 비 기능 요소 제어
– QoS 제어
– Metering & Charging (상용 API 서비스 과금)
– API 모니터링
API 게이트웨이를 이용한 설계 패턴 #6
• 여러개의 서비스 컴포넌트를 조합하여 움직이는 트렌젝션에 대한 추
적 디자인 패턴
분산 트렌젝션의 추적
원리 (XA 분산 트렌젝션과 유사)
• 초기 API에서 GTXID와 LTXID를 생성
• 서버를 넘어갈때 마다 같은 GTXID를
사용, LTXID는 하나씩 증가
구현시
• 서버간에는 HTTP 헤더로 TXID 전달
• 서버내에서는 Thread Local (Java)등
의 컨택스트 변수 활용
 초기 표준 설계가 중요함
• API 플랫폼
– API 게이트 웨이
– API 포탈 (웹)
• API 스펙 문서
• 샌드 박스 제공
• 제품군
– 설치형
• WSO2
• CA Layer 7
– 클라우드형
• AWS API GW
• apigee
Beyond API 게이트 웨이
MSA 적용 사례
촬영 및 배포 금지
• 총 4개 국가에 개발센터 위치
• 글로벌 시스템
• 설득에만 거의 일년
• 개념 이해가 안되거나 공감대가 낮은 팀
• 솔루션 베이스
• 나중에는 서로 가지고 가겠다고 해서, 두개의 API 게이트웨이가 생기는
• 다행히 IDM은 도입이 되어 있던 상황 (SAML, OAuth2 등 지원 가능)
• 인터페이스 맞추는데 무잖히 많은 시간. (팀별 레벨차)
• 말 안듣팀이 있었음. (표준화에 무지 어려움)
• 팀간 일정 조율 및 배포등이 어려워서 전체 배포 일정 지장
• 에러가 생길때 마다 E2E 를 보기위해서 전체 메신져 사용
O사의 MSA 사례 촬영 및 배포 금지
• 높으신 분이 자체 개발하라고 한 API 게이트웨이,구매한 API 게이트
웨이, 신규 프로젝트등
• API 표준화팀이 힘이 없음  제각각의 API (통제 안됨)
• 과연 성공할까? (무늬만 MSA)
국내 P사의 사례 촬영 및 배포 금지
• 원하지 않는 MSA의 대표적인 사례
• 개발자들이 공부하고 싶은 기술로 독립된 API 서버를 만들어냄
– JAVA, PHP, Python Flask, Python Django, Erlang
– MySQL, Postgres, Redis, memcached, MongoDB
• 그리고 퇴사…
• 현재 마이그레이션 하느냐고 죽어나는 중….
국내 C사의 사례 촬영 및 배포 금지
MSA 정리
• 장애 진단
• 테스팅
• 표준 관리
• 팀의 역량에 따른 일정 및 품질 문제
• 트렌젝션 관리
• 서비스간 코디네이션 (Chief Architect, Program manager의 역할)
• 서비스간 일정 관리
마이크로 서비스 아키텍쳐 문제점
• Self Organized Team
• Agile based interaction model
• Devops (Development & Operation)
• CD (Continuous Delivery)
• Product not a project
마이크로서비스 아키텍쳐와 같이 가는 개념들
• 전체적인 기술 역량이 뛰어날 것
• Project 보다는 Product 기반의 서비스 조직에 유리
• 일정 규모 이상의 팀이 되어야 유리함
• 팀간 커뮤니케이션과 조직 구조 (Self organized team) 세팅이 전제
• API 게이트 웨이는 양날의 검
• 왠만하면 하지 마시고… 모노리틱과 MSA 중간 정도에서 타협을
– 통제된 기술.
– 너무 잘게 나누지 말고. 업무 단위 정도로 인터페이스 정해가면서.
마이크로서비스 아키텍쳐
감사합니다.

More Related Content

What's hot

마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon Web Services Korea
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)Amazon Web Services Korea
 
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...Amazon Web Services Korea
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기YongSung Yoon
 
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관제관 이
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐Terry Cho
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중Amazon Web Services Korea
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Minchul Jung
 
장애 관리 방안
장애 관리 방안장애 관리 방안
장애 관리 방안Junho Lee
 
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들NAVER D2
 
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018Amazon Web Services Korea
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)Amazon Web Services Japan
 

What's hot (20)

마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
 
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
서버리스 애플리케이션 구축 패턴 및 구축 사례 - AWS Summit Seoul 2017
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
AWS CLIでAssumeRole
AWS CLIでAssumeRoleAWS CLIでAssumeRole
AWS CLIでAssumeRole
 
장애 관리 방안
장애 관리 방안장애 관리 방안
장애 관리 방안
 
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
[115]쿠팡 서비스 클라우드 마이그레이션 통해 배운것들
 
Amazon EBS: Deep Dive
Amazon EBS: Deep DiveAmazon EBS: Deep Dive
Amazon EBS: Deep Dive
 
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기::이창수::AWS Summit Seoul 2018
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 

Similar to 소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해

초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetesNAVER D2
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
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...uEngine Solutions
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략Ji-Woong Choi
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oceuEngine Solutions
 
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
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureYoonsung Jung
 
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
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3uEngine Solutions
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)Software in Life
 
야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)SeongIkKim2
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개HYUN-JOO LEE
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화KTH, 케이티하이텔
 

Similar to 소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해 (20)

초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
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...
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
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
 
One ASP.NET
One ASP.NETOne ASP.NET
One ASP.NET
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 
야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)야, 너두 짤수있어 - IaC Basic(210131 김성익)
야, 너두 짤수있어 - IaC Basic(210131 김성익)
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
 

More from Terry Cho

Kubernetes #6 advanced scheduling
Kubernetes #6   advanced schedulingKubernetes #6   advanced scheduling
Kubernetes #6 advanced schedulingTerry Cho
 
Kubernetes #4 volume &amp; stateful set
Kubernetes #4   volume &amp; stateful setKubernetes #4   volume &amp; stateful set
Kubernetes #4 volume &amp; stateful setTerry Cho
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 securityTerry Cho
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring Terry Cho
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기Terry Cho
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그Terry Cho
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)Terry Cho
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스Terry Cho
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA Terry Cho
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
모바일 개발 트랜드
모바일 개발 트랜드모바일 개발 트랜드
모바일 개발 트랜드Terry Cho
 
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개Terry Cho
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작Terry Cho
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법Terry Cho
 
R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개Terry Cho
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examplesTerry Cho
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. restTerry Cho
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐Terry Cho
 

More from Terry Cho (20)

Kubernetes #6 advanced scheduling
Kubernetes #6   advanced schedulingKubernetes #6   advanced scheduling
Kubernetes #6 advanced scheduling
 
Kubernetes #4 volume &amp; stateful set
Kubernetes #4   volume &amp; stateful setKubernetes #4   volume &amp; stateful set
Kubernetes #4 volume &amp; stateful set
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 security
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
모바일 개발 트랜드
모바일 개발 트랜드모바일 개발 트랜드
모바일 개발 트랜드
 
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examples
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
 

소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해

  • 1. 소프트웨어 개발 트랜드와 마이크로 서비스 아키텍쳐 피키캐스트 CTO 조대협
  • 2. 발표자 소개 조 대 협 본명: 조병욱 회원 13만명 온라인 개발자 커뮤니티 자바스터디(www.javastudy.co.kr) 운영자.. (기억의 저편..) 한국 자바 개발자 협회 부회장,서버사이드 아키텍트 그룹 운영자 벤쳐 개발자 BEA 웹로직 기술 지원 엔지니어 장애 진단, 성능 튜닝 NHN 잠깐 오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0,대용량 분산 시스템) MS APAC 클라우드 수석 아키텍트 프리렌서 (잘나가는 사장님) 삼성전자 무선 사업부 B2B팀 Chief Architect 현 피키캐스트 CTO로.. 열심히 세상을 즐겁게 만드는 중….
  • 3. 피키캐스트 회사 개요 • 2012년 12월 설립 • 전체 150명 • 1000만 다운로드, 월 600만명 방문, 일 150만명 방문 • 10대~20대 주요 타켓 • 컨텐츠 큐레이션 서비스 • 세상을 즐겁게 만드는 것을 목표로 열심히 일하고 있음… 개발실 개요 • 18명 개발자+중국 5명 (연말 30명 목표) • 인스타그램처럼 작고 빠른 팀을 지향 • 목표 3년내에 모두 페이스북에 취직하자!! • 괴수 집단 (책을 쓰거나.. 세미나에서 유명하거나… 전문 블러거이거나… 오픈소스 커 미터이거나…)  아니라도 됨… 잘하믄 됨.. (열심히 하는 사람 시러함..)
  • 4. • 개발 트랜드의 변화개발 프로세스 • 마이크로 서비스 아키텍쳐 (aka. MSA) 오늘 할 이야기
  • 5. 요즘 실리콘 밸리에서는 잘하는 것 부터 시작해서 발전 대세는 스크립트 언어 스스로 공부,스스로 개발,내재화 소규모 조직 [10~20명] 대우 받는 개발자 클라우드 컴퓨팅 빠른 시장 진입,저비용,누구나 서비스 젊은 개발자 (한국은 접는 개발자) 협업 [SNS,오픈소스,GitHub] CI to CD 유연한 고용 시장 메뚜기!! 3년 넘으면 바보 한국은 배신자 개발자의 변신은 무죄 새로운 능력..!! 잉여력STAR UP
  • 7. 3가지 관점에서 트랜드를 분석 소프트웨어 개발 중심의 변화 시대별 기술의 변화 개발 방식의 변화
  • 9. 시대별로 소프트웨어를 개발하는 이유가 어떻게 변화 했을까? 우리가 지금 쓰는 기술들은 왜? 소프트웨어 개발 중심의 변화 인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대 서비스 사업자 대단한 님들!! 벤더 개발자!! (스타트업,앱개발자)  당신도 할 수 있다 기술 변화의 주체
  • 11. 시대별 기술의 변화 인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대 EJB, JAVA, SERVLET/JSP 들어는 보셨나요? 벤더 : “이게 최신 기술임!!. 교육 부터 다 해드림!! 나만 믿으세요” $$$ 먹고 살 걱정 없음!! Spring,Hibernate,MySQL ,Struts,Ruby On Rails,PHP .. 서비스사 : 제품은 비싸요. 우리가 만든거 가져다 쓰 세요!! 대신 책임은 니꺼! 공부해야 함.. 압박!! 조금씩 먹고 살기 힘들어짐 (버틸만 함-그래도 대세는 있음) JavaScript, Cloud,node.js, Ruby on Rails,NoSQL 개발자:어려워서 못 써 먹겠음. 차라리 만듬..!! 기술 변화도 심함 이제는 생존의 문제!! 명퇴가 눈앞에..
  • 12. 시대별 기술 변화 인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대 UNIX 서버 벤더 소프트웨어 X86 서버 오픈소스 클라우드 오픈소스 스크립트 언어!! ORACLE MySQL NoSQL API HTML 5 안드로이드,IOS웹웹,4GL 쉽고 빠른 개발 기술의 홍수 대체제 성격 새로운 기술 흐름을 만드는 전환기 안정성,미션 크리티 컬 업무 위주
  • 13. • 왜 이런 현상이 생기는가? 쉬운 기술이 주목 받는 이유 스타트업. 앱 개발 시대별 기술자 조합 1. 기획자 창업 디자이너 - 기획자 여자 친구 개발자 – 기획자의 친구 (디자이너를 사랑함) 조합 2. 디자이너 창업 기획자 - 디자이너의 여자 친구 개발자 – 디자이너의 친구 (기획자를 사랑함) 개발자 1인 혼자 다 해야함 (클라이언트, 서버, 하드웨어 인프라) 배우기 쉬워야 함 돈 떨어지기전에 시장 출시해야함 빨리 배울 수 있어야함
  • 14. 수많은 앱들 / 치열한 경쟁 시장 현황 빠른 출시, 빠른 업데이트가 필요
  • 15. 요구 되는 기술 빠른 출시, 빠른 업데이트가 필요 쉬운 기술 필요 낮은 비용 클라우드 컴퓨팅 스크립트 언어 운영 효율화 Devops 자동화
  • 16. • 클라우드 컴퓨팅이 가져다준 변화 – 저비용으로 시작 가능 – 무제한적 리소스 – 지역/시간 제약에서 자유로워짐 – 쉽다. 하드웨어 인프라에 대한 작업이 없어짐 개발자가 인프라를 핸들링 가능 클라우드 컴퓨팅
  • 17. 클라우드 컴퓨팅 빠른 시장 진입 운영비 절감 초기 투자비 절감 유연한 자원 사용 (Auto Scale Out) 느려요 IO Performance 싸지 않아요 기존 솔루션이 안돌아요 장애가 납니다. 아주 잘!! (멀티 데이타 센타 설계) 클라우드 컴퓨팅의 장점 설계시 고려 사항 • 고려해야 하는 것들
  • 18. Devops = Development + Operation (개발 + 운영) Devops의 등장 개발과 운영 조직을 하나로 묶어서 원할한 의사 소통 빠른 반영, 빠른 피드백 반영 가능
  • 19. • 흔한(평범한) 개발 환경 시나리오 – 개발자가 아침에 출근해서 – 이클립스를 키고, 소스코드를 Git에서 Check Out 한후 – JIRA를 통해서 오늘 할당된 작업을 확인 한후에 코딩을 하고 – PC에서 Junit등을 이용하여 단위테스트등을 모두 끝 마치고 – 코드를 Git에 Commit하면 – Jekins에서 코드 변경을 감지하여, 자동으로 Check Out해서 mvn을 이용 해서 컴파일 하고, 테스트 서버에 배포해서 단위 테스트를 모두 수행하고, 코드의 라인커버리지를 분석하여 리포팅 한다. – 팀장은 빌드가 완료되었음을 확인하고, 단위 테스트 100% 완료 및 라인 커버리지 80% 완료를 확인한다. – 릴리즈 날짜가 오면, 배포 엔지니어는 별도의 작업 없이 Jenkins에서 빌드 된 그날 WAR를 확인하고, Fabric으로 된 배포 스크립트를 수행하면, 자동 으로 개발,QA 환경으로 배포가 되고, 환경별로 필요한 resource 파일들이 자동으로 customization해서 배포가 완료된 후, Junit 기반의 단위 테스트, SOAP UI 기반의 REST API 테스트, Seleniuem 기반의 UI 테스트까지 자동 으로 완료 한다. 만약에 배포나 테스트가 실패하면, 이전 버전으로 자동 롤백한다. 자동화
  • 20. • 빌드 자동화, 테스트 자동화, 배포 자동화 자동화 DEV QA STAGE 테스트完 가상화 or 클라우드 필요할때만 전개 릴리즈 연계시스템 클라이언트 단말(모바일) 자동 빌드 배포 시스템 Python Fabric Ruby Capistrano mvn & RPM 리포지토리 rpm
  • 21. Ruby on Rails, Python,PHP 대세는 node.js 스크립트 언어
  • 22. 아키텍쳐 스타일의 변화 중앙 집중형 고가용성(HA) 분산형 Resilience 트랜젝션 보장 장애 허용 한정된 용량 대용량 목표 성능 한계 성능 엔터프라이즈 시대 모바일 시대 먹고 살기 좋던 시절 요즘 RMI,WebService REST OPEN API
  • 24. 정보 습득 방식의 변화 벤더 교육 센터 제품 메뉴얼 책 책 온라인 메뉴얼 블로그 찾아보기 물어보기(영어로…) 중수 코드 까보기 고수 네이버?
  • 25. 개발 방식의 변화 벤더가 시키는데로 솔루션에 포함된 예제 보고 책 예제 보고 진리를 깨우치고 물어보고 다른데 프로젝트 했던 SI 불러서 그럴 시간 없음…. Copy & Paste Stack overflow 하는데 까정 해본다. 시간 없음 기술 검증 PoC,BMT 똑똑하면 소스 깐다. Trial & Error
  • 26. • 1단계 스타트업!! 단계별 개발 모델의 변화 스타트업
  • 27. • 2단계 펀딩 받았다. 단계별 개발 모델의 변화 성숙된 개발 조직
  • 28. • 3단계 깨달았다. 단계별 개발 모델의 변화 CD & DEVOPS
  • 29. 개발 방법론 <Insert Picture Here> 그래서… 저명한 박사님들께서.. 방법론을 만드시니.. RUP,CBD,CMMI
  • 30. 개발 방법론 But… 그러나 현실은  방법론은 방법론…  우리는 조금 더 현실적인 방법론이 필요합니다.
  • 31. 개발 방법론 실용주의 방법론 구세주 등장!! • 실용주의 방법론 • Erich Gamma, Joel Spolsky, Kent beck, Andrew Hunt • Iterative & Incremental • 애자일 기반 • 기존 방법론과 차이 • 요구 사항이 변화할 것을 가정 • 에러가 있을 것을 가정하여, 자주 테스트 • 협업과 커뮤니케이션
  • 32. 개발 방법론 • 대표적인 개발 방법론 스크럼이 대세!! 관리자 입장에서는 예측 불가 조직에 맞게 바꿔서 쓰세요 http://agilescout.com/learn-more-agile-software- development-methods-this-year/
  • 33. 개발 방법론 아시는 분들은 이미 알고, 자료도 많으니 모르시는 분들은 이것만도 7박 8일은 이야기 할 수 있으니, Scrum 만 기억해 가세요
  • 34. • 핵심은 개발 방법론 요구 사항은 변한다… 변하는게 나쁜게 아니라 고객은 배우면서 성장한다. 그러니 당연하게 바뀐다. 결국은 사람이 답이다. 커뮤니케이션을 원할하게 하는 방향으로 변화 역할과 원칙, 프로세스를 잊지 마라 안그러면 망한다. 애자일은 무슨~~
  • 36. • 기술 분류에 따른 팀 (Functioanl Team) – 프론트,백앤드,앱,운영,QA 등 팀모델의 변화 모바일 앱 백앤드 웹 페이지 관리도구 댓글 포스팅 댓글 포스팅 앱개발팀 프론트 개발팀 백앤드 개발팀
  • 37. • Cross functional Team (Product based) – 한팀내에 프론트,백앤드,앱,운영,QA를 다 넣음 – MSA에 적용되는 팀모델 팀모델의 변화
  • 38. • Cross functional Team (Product based) – Product 간에 복잡한 코디네이션이 필요함 – Program manager, Chief Architect 등 팀모델의 변화
  • 39. • Cross functional team (Feature based) – 기능 단위로 팀을 묶고, 한팀이 전체 컴포넌트를 개발 – 플랫폼화 필수 (쉽게 기능 추가가 필요한 구조) 팀 모델 변화
  • 41. • 모노리틱 아키텍쳐 (통서버) 전통적인 아키텍쳐 스타일 • 하나의 서버에 모든 비지니스 로직이 들어가 있는 형태 • 하나의 중앙 집중화된 데이타 베이스에 모든 데이타가 저 장됨
  • 42. • 단점 – 여러개의 기술을 혼용해서 사용하기 어려움 (node.js , Ruby, Python etc) – 배포 및 재기동 시간이 오래 걸림 – 수정이 용이하지 않음 (타 컴포넌트 의존성) • 장점 – 기술 단일화 – 관리 용이성 전통적인 아키텍쳐 스타일의 장단점
  • 43. • 시스템을 여러개의 독립된 서비스로 나눠서, 이 서비스를 조합함으로서 기능 을 제공하는 아키텍쳐 디자인 패턴 • SOA의 경량화 버전 (실패한다면 실패하는 이유도 같음) 마이크로서비스 아키텍쳐란? 서비스란? – 단일된 기능 묶음으로 개발된 서비스 컴포넌트 – REST API등을 통하여 기능을 제공 – 데이타를 공유하지 않고 독립적으로 가공 저장 사용자 관리 인터페이스 • REST • Thrift,Protocol buffer • AMQP • :사용자 데이타
  • 44. • 하나의 기능을 구현 하는데, 여러개의 서비스를 조합하여 기능을 제공 예) 주문 하기 : 사용자 정보 조회, 상품 정보 조회, 신규 주문 생성 서비스 조합 사용자 관리 상품 관리 주문 관리 쇼핑몰 웹 API CALL 사용자정보 상품정보 주문정보 사용자 관리 상품 관리 주문 관리 사용자 정보 상품 정보 주문 정보 쇼핑몰 웹 API CALL 모노리틱 아키텍쳐 마이크로 서비스 아키텍쳐
  • 45. • 마이크로 서비스 아키텍쳐는 서비스 별로 다른 기술 스택을 사용할 수 있음 기술 스택 사용자 관리 (JAVA) 상품 관리 (node.js) 주문 관리 (JAVA) 사용자 정보 (Cassandra) 상품 정보 (MySQL) 주문 정보 (CouchBase) 쇼핑몰 웹 API CALL 장점일까? • 운영 관점에서 여러가지 기술을 동 시에 다뤄야 함 (Devops – You build, You run) • 사람이 떠나면 보수 불가 (Product not a project) 단점일까? • 적절한 기술을 적절하게 배치 가능 o 복잡한 데이타 RDBMS, 양이 많은 고속 데이타 NoSQL o C10K NoSQL, 빠른 개발 스크 립트 언어, 튼튼한 시스템은 자 바 …
  • 46. • 컨웨이의 법칙 – 뼈저리게 느낌 팀 모델 “소프트웨어의 구조는 그 소프트웨어를 만드는 팀 의 구조와 일치한다.” 설계 백날 잘해야 소용없음 제대로 된 팀 구조를 만드는 것이 설계 (그 다음은 알아서 됨 ?) • 친한팀 컴포넌트끼리는 개발이 잘됨. 그러다 보니 그쪽으로 기능이 몰림 • 잘하는 팀한테 자꾸 중요 기능이 몰림 서비스 컴포넌트들이 균등하게 디자인 되지 않음
  • 47. • 분산형 거버넌스 (각 팀이 알아서. 적합한 기술, 스스로 하기) • You build & You run!! • Self Organized Team • Product vs Project • Cross functional team • Alignment (소통!!) 팀 모델
  • 48. • 팀간 조율이 핵심 – 새로운 조율자 ROLE이 요구됨 팀 모델 프로그램 메니져 : 팀간 일정 조율 치프 아키텍트 : 서비스간 흐름 정의, 표준 정의, 에러 추적/처리 방법 정의
  • 50. • 일반적인 마이크로 서비스 아키텍쳐 스택 구조 마이크로 서비스 아키텍쳐 토폴로지 API gateway Service orchestration (mediation, aggregation) CommonAPIs CommonAPIs CommonAPIs CommonAPIs CommonAPIs CommonAPIs 생략 가능 영역 • API 게이트 웨이 : API의 single end point • Common APIs : 범용 API • Orchestration : 여러 API를 묶어서, 요구 사항에 맞 는 로직을 구현 • Service Orchestration 규모가 커질 수 록 추가되는 계층들 (오케스트레이션, API 게이트 웨이) 1단계 2단계 3단계
  • 51. 쇼핑몰 API 서버 서비스 오케스트레이션 계층 활용 사용자 관리 상품 관리 주문 관리 사용자 정보 상품 정보 주문 정보 앱 또는 자바스크 립트 클라이언트 API CALL 사용자 관리 상품 관리 주문 관리 사용자 정보 상품 정보 주문 정보 API CALL 클라이언트 API CALL 클라이언트에서 직접 서비 스를 조합 하는 방식 별도의 조합 계층(Orchestration or Mediation) 을 넣는 방식 다른 프로토콜 사용 가능 ex)내부 PB, 외부 REST • API가 범용적으로 잘 짜야 있어야함 • 클라이언트 팀이 모든 컴포넌트팀과 조율이 필요 규모가 크지 않은 구조에서 효과적 • 중간에 API를 커스터마이제이션 또는 조합 하는 계층을 별도로 둠 • 클라이언트팀은 조합 API 개발팀과 커뮤니 케이션만 하면 됨 • 클라이언트 요구 사항에 기민하게 대처 • 그러나 계층은 하나 더 늘어남 (성능,디버 깅,배포) 일정 규모 이상. 특히 클라이언트 가 여러개인 구조에 효과적
  • 52. • API 인증/인가 • 로깅 • 라우팅 • 메시지 변환 • 메시지 프로토콜 변환 : API 게이트 웨이 API 서버 API 서버 API 서버 데이타 데이타 데이타 API 게이트 웨이 • 클라이언트와 API 서버 앞에서 일종의 프록시 처럼 위치 하여 다양한 기능을 수행함
  • 53. • SOA ESB (Enterprise Service Bus)의 단순화 버전 • 있으면 좋음. 없어도 됨 • 만들 수 있는 실력있으면, 쓰는게 좋음 • 잘못 쓰면 망하는 지름길 API 게이트 웨이
  • 54. • 인증,인가의 단일화 API 게이트웨이를 이용한 설계 패턴 #1 IDM (계정관리) API 토큰 관리 클라이언트 API 게이트 웨이 API 서버 1. API 토큰 발급 요청 2. 사용자 인증/인가 3. API 호출 5. API 호출 4. API 토큰 인증
  • 55. • 멀티 앤드포인트와 멀티 프로토콜 제공 API 게이트웨이를 이용한 설계 패턴 #2 <그림. 다양한 디바이스로 부터 정보를 수집하는 IOT시스템에 타입별 앤 드 포인트 제공하는 예제>
  • 56. • MEP (Message Exchange Pattern) 변화 API 게이트웨이를 이용한 설계 패턴 #2
  • 57. • 오케스트레이션 API 게이트웨이를 이용한 설계 패턴 #3 • ESB 기반 SOA 프로젝트가 실패한 대부분의 원인 (안 하는게 좋음) • 오케스트레이션 서버를 별 도로 두는게 좋음
  • 58. API 게이트웨이를 이용한 설계 패턴 #4 • 메세지 기반 라우팅 – 글로벌 배포 시스템에 유용함 – 멀티 버전 시스템 (레거시 업그레이드)에 유용
  • 59. • Cross Cutting Concern (공통 기능) 처리 – 인증,로깅등 공통 기능 처리 – API 개발팀은 비지니스 로직에 집중할 수 있도록 해줌 API 게이트웨이를 이용한 설계 패턴 #5
  • 60. • 다중 API 게이트 웨이 패턴 – 내부,외부용 API 게이트웨이 분리 API 게이트웨이를 이용한 설계 패턴 #6
  • 61. • API 호출용 엔드포인트와 스트리밍 (파일)용 엔드포인트 분리 API 게이트웨이를 이용한 설계 패턴 #7
  • 62. • 비 기능 요소 제어 – QoS 제어 – Metering & Charging (상용 API 서비스 과금) – API 모니터링 API 게이트웨이를 이용한 설계 패턴 #6
  • 63. • 여러개의 서비스 컴포넌트를 조합하여 움직이는 트렌젝션에 대한 추 적 디자인 패턴 분산 트렌젝션의 추적 원리 (XA 분산 트렌젝션과 유사) • 초기 API에서 GTXID와 LTXID를 생성 • 서버를 넘어갈때 마다 같은 GTXID를 사용, LTXID는 하나씩 증가 구현시 • 서버간에는 HTTP 헤더로 TXID 전달 • 서버내에서는 Thread Local (Java)등 의 컨택스트 변수 활용  초기 표준 설계가 중요함
  • 64. • API 플랫폼 – API 게이트 웨이 – API 포탈 (웹) • API 스펙 문서 • 샌드 박스 제공 • 제품군 – 설치형 • WSO2 • CA Layer 7 – 클라우드형 • AWS API GW • apigee Beyond API 게이트 웨이
  • 65. MSA 적용 사례 촬영 및 배포 금지
  • 66. • 총 4개 국가에 개발센터 위치 • 글로벌 시스템 • 설득에만 거의 일년 • 개념 이해가 안되거나 공감대가 낮은 팀 • 솔루션 베이스 • 나중에는 서로 가지고 가겠다고 해서, 두개의 API 게이트웨이가 생기는 • 다행히 IDM은 도입이 되어 있던 상황 (SAML, OAuth2 등 지원 가능) • 인터페이스 맞추는데 무잖히 많은 시간. (팀별 레벨차) • 말 안듣팀이 있었음. (표준화에 무지 어려움) • 팀간 일정 조율 및 배포등이 어려워서 전체 배포 일정 지장 • 에러가 생길때 마다 E2E 를 보기위해서 전체 메신져 사용 O사의 MSA 사례 촬영 및 배포 금지
  • 67. • 높으신 분이 자체 개발하라고 한 API 게이트웨이,구매한 API 게이트 웨이, 신규 프로젝트등 • API 표준화팀이 힘이 없음  제각각의 API (통제 안됨) • 과연 성공할까? (무늬만 MSA) 국내 P사의 사례 촬영 및 배포 금지
  • 68. • 원하지 않는 MSA의 대표적인 사례 • 개발자들이 공부하고 싶은 기술로 독립된 API 서버를 만들어냄 – JAVA, PHP, Python Flask, Python Django, Erlang – MySQL, Postgres, Redis, memcached, MongoDB • 그리고 퇴사… • 현재 마이그레이션 하느냐고 죽어나는 중…. 국내 C사의 사례 촬영 및 배포 금지
  • 70. • 장애 진단 • 테스팅 • 표준 관리 • 팀의 역량에 따른 일정 및 품질 문제 • 트렌젝션 관리 • 서비스간 코디네이션 (Chief Architect, Program manager의 역할) • 서비스간 일정 관리 마이크로 서비스 아키텍쳐 문제점
  • 71. • Self Organized Team • Agile based interaction model • Devops (Development & Operation) • CD (Continuous Delivery) • Product not a project 마이크로서비스 아키텍쳐와 같이 가는 개념들
  • 72. • 전체적인 기술 역량이 뛰어날 것 • Project 보다는 Product 기반의 서비스 조직에 유리 • 일정 규모 이상의 팀이 되어야 유리함 • 팀간 커뮤니케이션과 조직 구조 (Self organized team) 세팅이 전제 • API 게이트 웨이는 양날의 검 • 왠만하면 하지 마시고… 모노리틱과 MSA 중간 정도에서 타협을 – 통제된 기술. – 너무 잘게 나누지 말고. 업무 단위 정도로 인터페이스 정해가면서. 마이크로서비스 아키텍쳐