2018 All Rights Reserved 초판 1쇄발행 지은이 펴낸이 펴낸곳 출판신고 주소 B 전화 팩스 홈페이지 www jpub kr

Similar documents
[Brochure] KOR_TunA

Spring Boot

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 중간착취의 금지 41 - 대판 , 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 , 2002도3883 [남녀고용평등법위

°æÁ¦Àü¸Á-µ¼º¸.PDF

untitled

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

언리얼엔진4_내지_ indd

<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770>

Spring Boot/JDBC JdbcTemplate/CRUD 예제


Service-Oriented Architecture Copyright Tmax Soft 2005

사물인터넷비즈니스빅뱅_내지_11차_ indd

No Slide Title

INDUS-8.HWP

CONTENTS.HWP


슬라이드 1

슬라이드 1

untitled


UML

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

Intro to Servlet, EJB, JSP, WS

세계 비지니스 정보

문서의 제목 나눔고딕B, 54pt

[Brochure] KOR_LENA WAS_

J2EE & Web Services iSeminar

2017 All Rights Reserved 초판 1쇄발행 지은이 펴낸이 펴낸곳 출판신고 주소 B 전화 / 팩스 홈페이지 www jpub kr

PCServerMgmt7

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF

PowerPoint 프레젠테이션

<C1A4C3A5BFACB1B D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>

< BACFC7D1B1B3C0B0C1A4C3A5B5BFC7E228B1E2BCFABAB8B0ED D D20C6EDC1FD2035B1B32E687770>

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft Word - 조병호

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Interstage5 SOAP서비스 설정 가이드

< DB9CCB7A1B1B3C0B020C3BCC7E8B0FC20C0CCC0FC20B1B8C3E0C0BB20C0A7C7D120BCB3B0E820BFACB1B820B9D720BFEEBFB520C7C1B7CEB1D7B7A520B0B3B9DF2E687770>

Windows Live Hotmail Custom Domains Korea


<3036C7E2BCF6C3D6C1BEBABB2E687770>

서현수

Apache Ivy

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

슬라이드 1

PowerPoint Presentation

마이크로 서비스 아키텍처로 개발하기

제 출 문 중소기업청장 귀하 본 보고서를 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선 방안 연구 의 최종보고서로 제출합니다 한국산업기술대학교 산학협력단 단 장 최 정 훈 연구책임자 : 이재광 (한국산업기술대학교 부교수) 공동연구자 : 노성호

세션 3 (오이식).ppt

Ç¥Áö

<4D F736F F D20B4EBBFF BFB5BEF7BAB8B0EDBCAD2E646F63>

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

클라우드컴퓨팅확산에따른국내경제시사점 클라우드컴퓨팅확산에따른국내경제시사점 * 1) IT,,,, Salesforce.com SaaS (, ), PaaS ( ), IaaS (, IT ), IT, SW ICT, ICT IT ICT,, ICT, *, (TEL)

4S 1차년도 평가 발표자료

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

TTA Journal No.157_서체변경.indd



AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

파워포인트

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

ecorp-프로젝트제안서작성실무(양식3)

99-18.hwp

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

레드햇과 오픈스택 Feb, 2014 Kim Yong Ki Solution Architect Red Hat Korea RED HAT ENTERPRISE LINUX OPENSTACK PLATFORM 2014

00-1표지

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

PowerPoint 프레젠테이션

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Tech Trends 클라우드 버스팅의 현주소와 과제 아직 완벽한 클라우드 버스팅을 위해 가야 할 길이 멀지만, 하이브리드 클라우드는 충분한 이점을 가져다 준다. Robert L. Scheier Networkworld 매끄러운 클라우드 버스팅(Cloud Bursting

1

표1

Cloud Friendly System Architecture

Microsoft Word - CPL-TR OM2M.doc

PowerPoint 프레젠테이션

< B3E22032BAD0B1E220C4DCC5D9C3F7BBEABEF7B5BFC7E2BAD0BCAEBAB8B0EDBCAD28C3D6C1BE292E687770>

1224_2008forecast.hwp

PowerPoint 프레젠테이션

2005 중소기업 컨설팅 산업 백서

13Åë°è¹é¼Ł

< B3E220C7CFB9DDB1E2BACEC5CD20C0CCB7B8B0D420B4DEB6F3C1FDB4CFB4D E687770>

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

How To Use This Deck

JavaGeneralProgramming.PDF

2017 All Rights Reserved 초판 1쇄발행 지은이 펴낸이 펴낸곳 출판신고 주소 B 전화 팩스 홈페이지 www jpub kr

오늘날의 기업들은 24시간 365일 멈추지 않고 돌아간다. 그리고 이러한 기업들을 위해서 업무와 관련 된 중요한 문서들은 언제 어디서라도 항상 접근하여 활용이 가능해야 한다. 끊임없이 변화하는 기업들 의 경쟁 속에서 기업내의 중요 문서의 효율적인 관리와 활용 방안은 이

consulting

Slide 1

연구요약 1. 서론 연구의 목적 본 연구는 청소년 교육정책의 바람직한 방향을 설정하고, 미래지향적인 정책과제와 전략, 그리고 비전을 도출하기 위해 수행되었다. 이를 위해 지 난 15년간의 청소년 교육 환경 및 정책의 변화를 분석하고, 향후 15년간 의 청소년 교육 환경

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

슬라이드 1

영암군 관광종합개발계획 제6장 관광(단)지 개발계획 제7장 관광브랜드 강화사업 1. 월출산 기( 氣 )체험촌 조성사업 167 (바둑테마파크 기본 계획 변경) 2. 성기동 관광지 명소화 사업 마한문화공원 명소화 사업 기찬랜드 명소화 사업 240

Azure Stack – What’s Next in Microsoft Cloud

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

Transcription:

2018 All Rights Reserved 초판 1쇄발행 2018 10 15 지은이 펴낸이 펴낸곳 출판신고 2009 11 10 406 2009 000087 주소 159 3 3 B 전화 070 8201 9010 팩스 02 6280 0405 홈페이지 www jpub kr 원고투고 jeipub@gmail com 독자문의 readers jpub@gmail com 교재문의 jeipubmarketer@gmail com 편집부 소통 기획팀 회계팀 교정 교열 본문디자인 표지디자인 용지 인쇄 제본 ISBN 979 11 88621 41 5 93000 값 22 000 제이펍은독자여러분의아이디어와원고투고를기다리고있습니다. 책으로펴내고자하는아이디어나원고가있으신분께서는책의간단한개요와차례, 구성과저 ( 역 ) 자약력등을메일로보내주세요. jeipub@gmail.com

드리는말씀 이책에기재된내용을기반으로한운용결과에대해저자, 소프트웨어개발자및제공자, 제이펍출판사는일체의책임을지지않으므로양해바랍니다. 이책에기재한회사명및제품명은각회사의등록상표 ( 또는상표 ) 이며, 본문중에는 TM, C, R 등의기호를생략하고있습니다. 이책에서설명하고있는실제제품버전은독자의학습시점에따라책의버전과다를수있습니다. 책내용과관련된문의사항은지은이나출판사로연락주시기바랍니다. - 지은이 : architectstory@gmail.com - 출판사 : readers.jpub@gmail.com

차례 머리말 이책에대하여 베타리더후기 ix xii xv CHAPTER 01 마이크로서비스아키텍처의이해 1.1 소프트웨어아키텍처의이해 1 소프트웨어아키텍처란무엇인가? 1 1.2 마이크로서비스아키텍처 13 마이크로서비스아키텍처의이해 13 서비스지향아키텍처 15 왜마이크로서비스아키텍처인가? 22 CHAPTER 02 클라우드네이티브의이해 2.1 클라우드네이티브 26 클라우드네이티브애플리케이션 26 클라우드네이티브아키텍처 32 클라우드네이티브인프라 35 지속적통합과배포 37 데브옵스 40 2.2 컨테이너 42 컨테이너개념 42 리눅스컨테이너 45 도커컨테이너 47 차례 v

CHAPTER 03 마이크로서비스이해와기획 3.1 마이크로서비스이해 54 마이크로서비스개념 54 3.2 마이크로서비스기획 62 마이크로서비스식별전략 63 마이크로서비스를위한고려사항 74 CHAPTER 04 마이크로서비스아키텍처설계 4.1 마이크로서비스설계 81 커피전문점서비스이해 81 커피전문점마이크로서비스개념설계 84 커피전문점마이크로서비스구조설계 92 4.2 마이크로서비스아키텍처설계 102 마이크로서비스아키텍처구성 103 서비스구성체계 109 테스트체계 113 지속적통합및배포체계설계 116 모니터링체계설계 118 CHAPTER 05 마이크로서비스구현 5.1 마이크로서비스구성 121 개발환경구성 121 커피전문점마이크로서비스구성도및구성요소 124 5.2 마이크로서비스구현 136 커피주문마이크로서비스구현 136 회원확인마이크로서비스구현 145 vi 차례

CHAPTER 06 마이크로서비스아키텍처구축 6.1 마이크로서비스아키텍처구성 155 스프링클라우드아키텍처참조모델 155 스프링클라우드아키텍처구성요소 157 커피전문점마이크로서비스아키텍처구성도및구성요소 157 6.2 커피전문점마이크로서비스아키텍처구축 160 설정서버 160 유레카서버 163 줄서버 166 터빈서버 171 히스트릭스대시보드서버 174 CHAPTER 07 마이크로서비스빌드배포 7.1 마이크로서비스빌드단위 181 독립프로젝트 182 복수프로젝트 183 7.2 마이크로서비스배포형태 184 실행가능한압축파일 185 도커이미지 185 7.3 소스빌드및패키징 187 jar 빌드및패키징 188 war 빌드및패키징 192 도커이미지빌드및패키징 196 차례 vii

APPENDIX A 커피전문점서비스요약및실행 A.1 커피전문점서비스개요 199 커피전문점서비스개념도 199 커피전문점서비스시스템구성도및구성요소 200 A.2 커피전문점서비스및에코시스템기동 202 에코시스템기동 202 마이크로서비스기동 205 테스트테이블및데이터생성 206 A.3 커피전문점마이크로서비스실행 208 커피주문 208 주문처리상태확인 209 에코시스템조회 211 참고문헌 213 찾아보기 215 viii 차례

머리말 머리말 ix

Zuul Eureka Turbine Hystrix x 머리말

머리말 xi

이책에대하여 xii 이책에대하여

주요내용 1 2 3 4 5 6 SpringCloud Config sever Zuul Eureka Turbine Hystrix 7 jar war 다운로드및 A/S 마이크로서비스다운로드 https github com architectstory msa book git 마이크로서비스에코시스템다운로드 https github com architectstory msa architecture config server git https github com architectstory msa architecture eureka server git https github com architectstory msa architecture zuul server git 이책에대하여 xiii

https github com architectstory msa architecture turbine server git https github com architectstory msa architecture hystrixdashboard git 독자 A/S architectstory@gmail com readers jpub@gmail com xiv 이책에대하여

베타리더후기 제이펍은책에대한애정과기술에대한열정이뜨거운베타리더들로하여금출간되는모든서적에사전검증을시행하고있습니다. 김종욱 ( 네이버 ) 김진영 ( 야놀자 ) 베타리더후기 xv

윤영철 (SOCAR) DevOps 최희철 MSA 황도영 (NHN) MSA MSA MSA MSA MSA MSA 허원철 xvi 베타리더후기

CHAPTER 01 마이크로서비스아키텍처의이해 1.1 소프트웨어아키텍처의이해 소프트웨어아키텍처란무엇인가? software architecture 소프트웨어 구성요소 관계 구성요소 그림 1.1 소프트웨어아키텍처 1

UML Unified Modeling Language architect 운영자아키텍트백엔드개발자 화면개발자 품질담당자 이해하다 아키텍처 그림 1.2 아키텍처이해수준의차이 1 2 view 4+1 2 CHAPTER 01 마이크로서비스아키텍처의이해

논리적뷰 (Logical view) 구현뷰 (Implementation view) 유스케이스뷰 (Usecase view) 프로세스뷰 (Process view) 배치뷰 (Deployment view) 그림 1.3 4+1 뷰 logic view thread process process view implementation view deployment view usecase view 1 200 1.1 소프트웨어아키텍처의이해 3

시스템 소프트웨어 관계 그림 1.4 아키텍처의역할 logic 4 CHAPTER 01 마이크로서비스아키텍처의이해

소프트웨어아키텍처스타일? style software architecture style 1.1 소프트웨어아키텍처의이해 5

아키텍처 아키텍처를어떻게? 아키텍처스타일 아키텍트 아키텍처접근방향제시 시스템 아키텍처스타일 메시지전달? 어떻게 이벤트처리? 해결하나? 피어투피어패턴 (Peer to Peer Patten) 이벤트 - 버스패턴 (Event-Bus Pattern) Bus Peer Peer Event Listener 아키텍처스타일 아키텍처패턴 그림 1.5 소프트웨어아키텍처스타일과패턴 monolith 아키텍처와아키텍트역할의변화 package 1 000 Java class 6 CHAPTER 01 마이크로서비스아키텍처의이해

애플리케이션 일부기능만수정 기능 애플리케이션배포 시스템 그림 1.6 단일애플리케이션배포 1 6 2 3 cloud PaaS Platform as a Service 단일어플리케이션 분할 서비스 서비스 서비스 서비스 그림 1.7 모놀리스에서마이크로서비스로변화 1.1 소프트웨어아키텍처의이해 7

1 8 1 8 8 CHAPTER 01 마이크로서비스아키텍처의이해

개발 1 팀 아키텍처팀 공통팀 개발 2 팀 품질팀 그림 1.8 회색지대 1 8 1.1 소프트웨어아키텍처의이해 9

소프트웨어아키텍트 소프트웨어구성 하드웨어구성 테크니컬아키텍트 화면기술구성 소프트웨어 & 시스템아키텍처 네트워크구성 프론트엔드아키텍트 프레임워크구축 데이터구성 인프라아키텍트 프레임워크아키텍트 데이터아키텍트 그림 1.9 아키텍처역할유형 1 9 10 CHAPTER 01 마이크로서비스아키텍처의이해

AI 클라우드사업자 PaaS/IaaS SaaS 개발 / 운영플랫폼 인공지능 블록체인 이해 솔루션제시 빅데이터 솔루션아키텍트 사용자 그림 1.10 아키텍트역할변화 SaaS Software as a Service PaaS Platform as a Service IaaS Infra as a Service SaaS AI 1.1 소프트웨어아키텍처의이해 11

on premise 12 CHAPTER 01 마이크로서비스아키텍처의이해

1.2 마이크로서비스아키텍처 마이크로서비스아키텍처의이해 microservice architecture 1.2 마이크로서비스아키텍처 13

애플리케이션 서비스 서비스 분할 데이터 데이터 서비스 서비스 데이터 데이터 데이터 그림 1.11 모놀리스아키텍처와마이크로서비스아키텍처 2 3 resource scale up tuning eco system * risk * 14 CHAPTER 01 마이크로서비스아키텍처의이해

서비스지향아키텍처 조직 A 조직 B 업무 업무업무업무 반영 사용 서비스서비스서비스 그림 1.12 서비스지향 1.2 마이크로서비스아키텍처 15

서비스 계약 서비스소비자 버전 1 버전 2 버전 N 그림 1.13 서비스계약 1 2 서비스요청 요청경로변경 응답지연 서비스 서비스 그림 1.14 서비스가용성 L4 L7 16 CHAPTER 01 마이크로서비스아키텍처의이해

circuit breaker 서비스 권한확인 서비스 그림 1.15 서비스권한 transaction 서비스 데이터전달 서비스 데이터의일시적불일치 그림 1.16 BASE 트랜잭션 BASE Basically Available Soft State Eventual Consistency basically available optimistic locking queue soft state 1.2 마이크로서비스아키텍처 17

eventual consistency 클라이언트 클라이언트 시작 장애 흐름제어 A 서비스 A 서비스 A 서비스 대체서비스 수평확장 모니터링 & 대응 그림 1.17 서비스관리 SOA? ownership 비즈니스 서비스지향 SOA 마이크로서비스아키텍처 그림 1.18 SOA 와마이크로서비스아키텍처공통점 18 CHAPTER 01 마이크로서비스아키텍처의이해

SOA SOA SOA ESB Enterprise Service Bus SOA 마이크로서비스 작은서비스하나에집중 상대적크기 SOA 서비스 비즈니스에집중 그림 1.19 서비스의상대적크기와관심사 CRM Customer Relationship Management 1.2 마이크로서비스아키텍처 19

마이크로서비스 마이크로서비스 조직 ( 팀 ) 마이크로서비스 SOA 업무미들웨어시스템서비스조합개발 업무팀 공통팀 하나의팀에서개발및관리 그림 1.20 서비스오너십 업무 / 기술 / 개발조직이상이함 개발팀 SOA SOA 마이크로서비스아키텍처 서비스 SOA 서비스공유최소화 서비스공유최대화 그림 1.21 서비스의공유지향점 SOA SOA ESB REST API Application Programming 20 CHAPTER 01 마이크로서비스아키텍처의이해

Interface 마이크로서비스아키텍처 SOA 서비스오픈 RESTful 서비스 웹서비스 서비스공유 REST API WSDL/UDDI/ESB API 미들웨어 그림 1.22 API 와미들웨어 SOA ESB RESTful API SOA SOA UDDI Universal Description Discovery and Integration WSDL Web Services Description Language WSDL UDDI stub SOAP Simple Object Access Protocol WSDL RESTful API SOA SOA 1.2 마이크로서비스아키텍처 21

SOA 1 1 표 1.1 마이크로서비스아키텍처와 SOA 특징비교 SOA 사상 서비스지향 서비스지향 서비스오너십 조직 ( 팀 ) 단위자율성부여 조직 ( 팀 ) 간협업 서비스크기 SOA 대비작음 마이크로서비스아키텍처대비큼 서비스공유정보 서비스간독립 서비스공유 서비스공유방식 API 서비스공유를위한미들웨어 서비스통신방식 RESTful API 등 SOAP, WSDL, UDDI, ESB 등 왜마이크로서비스아키텍처인가? IT 22 CHAPTER 01 마이크로서비스아키텍처의이해

Happy Path Happy Path Happy Path 1.2 마이크로서비스아키텍처 23

시나리오 사상 실체화 프로토타입 단계 1 단계 2 단계 3 예외 예외 서비스요건 Happy Path 서비스 그림 1.23 Happy Path 1 23 24 CHAPTER 01 마이크로서비스아키텍처의이해

CHAPTER 03 마이크로서비스이해와기획 53

3.1 마이크로서비스이해 마이크로서비스개념? 모놀리스애플리케이션 마이크로서비스 그림 3.1 마이크로서비스 monolith 54 CHAPTER 03 마이크로서비스이해와기획

마이크로서비스 관계 마이크로서비스 마이크로서비스 그림 3.2 마이크로서비스간관계 3.1 마이크로서비스이해 55

비즈니스 비즈니스 변화 / 요건 반영 급속한변화 / 요건 빠른대응 모놀리스애플리케이션 마이크로서비스 그림 3.3 작은서비스 Eric Evans Domain Driven Design bounded context ubiquitous language CRM Customer Relationship Management CRM 56 CHAPTER 03 마이크로서비스이해와기획

10 CRM call center VOC Voice Of Customer VOC VOC CRM 애플리케이션 고객관리기능 고객서비스 VOC 관리기능 계약관리기능 계약서비스 CRM VOC 서비스 그림 3.4 서비스분할 CRM 3.1 마이크로서비스이해 57

고객관리팀 계약관리팀 고객서비스 VOC 관리팀 계약서비스 CRM VOC 서비스 그림 3.5 서비스 - 팀관계 VOC 서비스경계 A 서비스 B 서비스 C 서비스 그림 3.6 독립된서비스 58 CHAPTER 03 마이크로서비스이해와기획

CHAPTER 05 마이크로서비스구현 5.1 마이크로서비스구성 PC * 개발환경구성 PC PC 5 1 * Github JDK Git Gradle Jenkins 121

PC 환경 Kafka Server Kafka Zookeeper Jenkins Gradle Git JDK Eclispe IDE Springboot(1.5.10) Eclipse Plug-In (STS, Gradle, Git) JDK Library lombok 1.16.20 lombok-utils 1.16.20 spring-kafka spring-boot-starter-web spring-boot-starter-data-jpa spring-boot-starter-jdbc spring-boot-starter-actuator spring-cloud-starter-config spring-cloud-starter-eureka-server spring-cloud-starter-zuul spring-cloud-starter-ribbon spring-cloud-starter-turbine spring-cloud-starter-hystrix spring-cloud-starter-hystrix-dashboard spring-cloud-starter-feign mybatis-spring-boot-starter com.h2database:h2 5.1 커피전문점서비스개발소프트웨어 PC Kafka Server Eclipse PC 5 1 표 5.1 설치소프트웨어 카프카서버 (Kafka Server) 2.12-1-1.0 메시지발행및구독을위한시스템 JDK 1.8 자비개발도구키트 (tool kit) 이클립스 (Eclipse) Oxygen 자바프로그램개발을위한통합개발도구 이클립스플러그인 (Eclipse Plug-In) STS 스프링소스도구모음 그래들 (Gradle) 4.8 라이브러리의존성관리도구 스프링부트 (Springboot) 1.5.10 스프링프레임워크스타터키트 (starter kit) 라이브러리 (Library) 젠킨스 (Jenkins) 도커 (Docker) 오픈소스 자바기반의오픈소스라이브러리, 스프링클라우드, 넷플릭스라이브러리 (Netflix OSS) 등 소스코드빌드및패키징 도커파일, 이미지, 컨테이너생성, AWS EC2 환경에설치 122 CHAPTER 05 마이크로서비스구현

library 5 2 표 5.2 라이브러리 * 버전상세정보는 git source 내 build.gradle 참고. Lombok lombok 1.16.20 lombok-utils 1.16.20 자바클래스멤버 (member) 변수에대한 setter, getter 함수를자동으로생성해주는라이브러리 *eclipse 연결방법은아래의사이트참고 https://projectlombok.org/setup/eclipse Kafka spring-kafka 1.3.2 카프카 (Kafka) 라이브러리 Springboot Spring Cloud Mybatis spring-boot-starter-web spring-boot-starter-data-jpa spring-boot-starter-jdbc spring-boot-starter-actuator spring-cloud-starter-config 스프링부트기반웹스타터 (web starter) JPA 라이브러리 JDBC 라이브러리 스프링부트상태관리라이브러리 환경설정 (config) 관리를위한라이브러리 spring-cloud-starter-eureka 유레카 (Eureka) 라이브러리 ( 서비스등록감지 ) spring-cloud-starter-zuul 줄 (Zuul) 라이브러리 ( 서비스라우팅 ) spring-cloud-starter-ribbon 리본 (Ribbon) 라이브러리 ( 서비스로드밸런서 ) spring-cloud-starter-turbine 터빈 (Turbine) 라이브러리 ( 스트림메시지수집 ) spring-cloud-starter-hystrix 히스트릭스라이브러리 ( 서킷브레이커 ) spring-cloud-starter-hystrixdashboard spring-cloud-starter-feign org.mybatis.spring.boot: mybatis-spring-boot-starter 히스트릭스대시보드라이브러리 마이크로서비스간서비스호출 자바퍼시스턴스 (Persistance) 프레임워크 H2 com.h2database:h2 자바기반오픈소스관계형데이터베이스 5.1 마이크로서비스구성 123

Eclipse Gradle 커피전문점마이크로서비스구성도및구성요소 5 2 회원확인마이크로서비스 확인 커피주문마이크로서비스 주문처리상태확인마이크로서비스 주문내역 주문내역 주문저장 발행 구독 내역저장 내역조회 회원데이터 주문데이터 큐잉시스템 주문데이터 그림 5.2 커피전문점마이크로서비스구성도 5 3 표 5.3 커피전문점마이크로서비스구성요소 커피주문 커피주문처리서비스 msa-service-coffee-order 회원확인 회원가입여부확인서비스 msa-service-coffee-member 주문처리상태확인 주문처리상태확인서비스 msa-service-coffee-status 124 CHAPTER 05 마이크로서비스구현

5 4 표 5.4 커피전문점마이크로서비스자바프로젝트구성요소 msa-book 마이크로서비스루트프로젝트 msa-service-coffee-order msa-service-coffee-member msa-service-coffee-status domain/model domain/repository domain/service springboot/configuration springboot/messageq springboot/repository springboot/rest springboot/service springboot/configuration springboot/repository springboot/rest springboot/configuration springboot/messageq springboot/repository springboot/rest 엔티티와밸류오브젝트데이터처리업무로직환경설정큐잉시스템연계데이터베이스연계 REST API 서비스환경설정데이터베이스연계 REST API 환경설정큐잉시스템연계데이터베이스연계 REST API msa book 5.1 마이크로서비스구성 125

루트프로젝트 settings gradle build gradle settings gradle build gradle 그림 5.3 msa-book settings.gradle settings gradle include 126 CHAPTER 05 마이크로서비스구현

마이크로서비스프로젝트 빌드 Maven Repository build.gradle 라이브러리목록명세 다운로드 5.4 build.gradle 역할 그림 5.5 msa-book build.gradle 5.1 마이크로서비스구성 127

build gradle plug in task initsourcefolder src resources src resources dependencies lombok juint lombok setter getter repository lombok<version> jar PC eclipse exe 커피주문마이크로서비스프로젝트 그림 5.6 msa-service-coffee-order project 128 CHAPTER 05 마이크로서비스구현

binding JPA 그림 5.7 msa-service-coffee-order build.gradle kafka 회원확인마이크로서비스프로젝트 (msa-service-member) JPA MyBatis SQL 5.1 마이크로서비스구성 129