Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

14

Share

Download to read offline

우아한테크세미나-우아한멀티모듈

Download to read offline

2019.08 우아한형제들 테크 세미나 발표자료

Related Books

Free with a 30 day trial from Scribd

See all

우아한테크세미나-우아한멀티모듈

  1. 1. 우아한 멀티모듈 With Spring, Gradle
  2. 2. 배달의민족 사용법 목록 진입 가게 진입 주문 결제
  3. 3. 프론트 시스템 주문 시스템 결제 시스템
  4. 4. co-duck.com
  5. 5. co-duck.com
  6. 6. 권용근 프론트검색서비스팀 kingbbode@gmail.com
  7. 7. 멀티 모듈
  8. 8. Member member-internal-api member-external-api member-batch Member Member 회원 시스템 (단일 모듈 멀티 프로젝트)
  9. 9. Member Member Member 회원 시스템 (단일 모듈 멀티 프로젝트)
  10. 10. Member Member Member 회원 시스템 (단일 모듈 멀티 프로젝트) 사람에게 의존적인 일관성
  11. 11. 회원 시스템 (단일 모듈 멀티 프로젝트 + 내부 Maven 저장 ) member-internal-api member-external-apimember-batch Member member-domain Nexus
  12. 12. member-internal-api member-external-apimember-batch Member member-domain Nexus 시스템으로 보장되는 일관성 회원 시스템 (단일 모듈 멀티 프로젝트 + 내부 Maven 저장 )
  13. 13. member-internal-api member-external-apimember-batch Member member-domain Nexus 번거로운 개발 사이클 회원 시스템 (단일 모듈 멀티 프로젝트 + 내부 Maven 저장 )
  14. 14. Member internal-apiexternal-api batch member-project 회원 시스템 (멀티 모듈 단일 프로젝트)
  15. 15. Member internal-apiexternal-api batch 회원 시스템 (멀티 모듈 단일 프로젝트) 시스템으로 보장되는 일관성 빠른 개발 사이클
  16. 16. MSA ? 멀티모듈 ?
  17. 17. API BATCHDB ADMIN WEB Cache
  18. 18. API BATCHDB ADMIN WEB Cache Monolithic
  19. 19. 주문 결제 가게 프론트 광고 정산 쿠폰
  20. 20. API BATCHDB ADMIN WEB Cache API BATCHDB ADMIN WEB Cache
  21. 21. 주문 결제 가게 프론트 광고 정산 쿠폰
  22. 22. 주문 결제 가게 프론트 광고 정산 쿠폰MSA
  23. 23. API BATCHDB ADMIN WEB Cache API WEB BATCH ADMIN 단일 모듈 멀티 프로젝트
  24. 24. API BATCHDB ADMIN WEB Cache ADMIN API WEB BATCH DOMAIN 멀티 모듈 단일 프로젝트
  25. 25. API BATCHDB ADMIN WEB Cache Member API WEB BATCH DOMAIN 멀티 모듈 단일 프로젝트
  26. 26. API BATCHDB ADMIN WEB Cache API WEB BATCH ADMIN 단일 모듈 멀티 프로젝트
  27. 27. MSA 에서 멀티모듈이 부각되는 이유는
  28. 28. 역할, 의존성의 분리를 통해
 시스템의 분리, 통합을 유연하게 만들어 줄 수 있는 좋은 아키텍처를 만들 수 있기 때문
  29. 29. “좋은 아키텍처는 시스템이 모노리틱 구조로 태어나서 단일 파 일로 배포되더라도, 이후에는 독립적으로 배포 가능한 단위들 의 집합으로 성장하고, 또 독립적인 서비스나 마이크로서비스 수 준까지 성장할 수 있도록 만들어져야한다. 또한 좋은 아키텍처라 면 나중에 상황이 바뀌었을 때 이 진행 방향을 거꾸로 돌려 원 래 형태인 모노리틱 구조로 되돌릴 수도 있어야 한다” - 클린 아키텍처
  30. 30. 실패한 멀티 모듈 프로젝트
  31. 31. Member internal-apiexternal-api batch 공통되는 코드를 제거할 수 있겠다!
  32. 32. 실패한 멀티 모듈 프로젝트 Member internal-apiexternal-api batch
  33. 33. 실패한 멀티 모듈 프로젝트 Member internal-apiexternal-api batch
  34. 34. 실패한 멀티 모듈 프로젝트 Common Member internal-apiexternal-api batch
  35. 35. 실패한 멀티 모듈 프로젝트 Common Member internal-apiexternal-api batch
  36. 36. 실패한 멀티 모듈 프로젝트 Common Member internal-apiexternal-api batch
  37. 37. 실패한 멀티 모듈 프로젝트 Common Member internal-apiexternal-api batch
  38. 38. 실패한 멀티 모듈 프로젝트 Common Member internal-apiexternal-api batch
  39. 39. 실패한 멀티 모듈 프로젝트 1. 스파게티 코드
  40. 40. Common Member internal-apiexternal-api batch 1. 스파게티 코드
  41. 41. Common Member internal-apiexternal-api batch 1. 스파게티 코드 A B CD
  42. 42. Common Member internal-apiexternal-api batch A B CD 1. 스파게티 코드
  43. 43. Common Member internal-apiexternal-api batch A B CD 1. 스파게티 코드
  44. 44. Common Member internal-apiexternal-api batch A B CD 1. 스파게티 코드
  45. 45. 실패한 멀티 모듈 프로젝트 2. 의존성 덩어리
  46. 46. Common Member internal-apiexternal-api batch 2.의존성 덩어리
  47. 47. Common internal-apiexternal-api batch 2.의존성 덩어리
  48. 48. Common internal-apiexternal-api batch 2.의존성 덩어리
  49. 49. 2.의존성 덩어리
  50. 50. Common internal-apiexternal-api batch 2.의존성 덩어리
  51. 51. Common internal-apiexternal-api batch 2.의존성 덩어리
  52. 52. Common internal-apiexternal-api batch 2.의존성 덩어리
  53. 53. 실패한 멀티 모듈 프로젝트 3. 공통 설정
  54. 54. Common internal-apiexternal-api batch 3.공통 설정
  55. 55. Common internal-apiexternal-api batch 100 5 25 3.공통 설정
  56. 56. Common internal-apiexternal-api batch 100 5 25 100 3.공통 설정
  57. 57. Common internal-apiexternal-api batch 100 100 100 100 3.공통 설정
  58. 58. Common internal-apiexternal-api batch 100 100 100 100 3.공통 설정
  59. 59. 무엇이 문제였을까?
  60. 60. 모듈에 대한 정의가 모호했다
  61. 61. 모듈화란?
  62. 62. 무엇을 심으로 정의 내려야할까?
  63. 63. 할과 임
  64. 64. 할과 임에 대한 범위는?
  65. 65. 라이브러리들 염탐
  66. 66. 계층
  67. 67. 계층 계층 계층
  68. 68. 계층 계층 계층 - 할 - 임 - 할 - 임 - 할 - 임 - 할 - 임 - 할 - 임 - 할 - 임
  69. 69. 계층 계층 계층 - 할 - 임 - 할 - 임 - 할 - 임 - 할 - 임 - 할 - 임 - 할 - 임
  70. 70. 그런데..
  71. 71. 라이브러리(프레임워크)의 목적? 우리가 만드는 애플리케이션의 목적? 사용성, 기능 제공 서비스 제공
  72. 72. 직접 계층, 할을 나누어보아야겠다
  73. 73. 멀티 모듈 구성하기
  74. 74. 주의사항
  75. 75. 1. 시스템
  76. 76. 2. 애플리케이션 비지니스, 도메인 비지니스
  77. 77. 1. 요청 값 검증 2. 주문 요청
 - 주문 데이터 생성
 - 주문 데이터 검증
 - 주문 데이터 저장 3. 주문 결과 처리 4. 응답 문 요청 API
  78. 78. 1. 요청 값 검증 2. 주문 요청
 - 주문 데이터 생성
 - 주문 데이터 검증
 - 주문 데이터 저장 3. 주문 결과 처리 4. 응답 어플리케이션 비지니스
  79. 79. 도메인 비지니스 1. 요청 값 검증 2. 주문 요청
 - 주문 데이터 생성
 - 주문 데이터 검증
 - 주문 데이터 저장 3. 주문 결과 처리 4. 응답
  80. 80. 3. 새로운 시각
  81. 81. “입체적이네요. 기존 애플리케이션을 바라보던 방향과는 다 른 방향에서 바라본 내용이군요.”
  82. 82. Presentation Service Domain Infrastructure
  83. 83. Presentation Service Domain Infrastructure
  84. 84. 진짜 시작
  85. 85. independently available in system available system domain application system core Inside the system Outside the system 레이어 구상
  86. 86. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 시스템 내부 시스템 외부 레이어 구상
  87. 87. 레이어 구상 역할이 분명한가? 어플리케이션 비지니스를 가지고 있는가? 도메인 비지니스를 가지고 있는가? YES NO 어플리케이션 시스템을 알고 있는가?? NO YESNO 도메인 모듈 YES YES 내부 모듈 독립 모듈 NO
  88. 88. 내부 모듈 계층
  89. 89. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 시스템 내부 시스템 외부 1. 내부 모듈 계층
  90. 90. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 -시스템 안에서 의미를 갖는다
 -어플리케이션, 도메인의 비지니스를 모른다 1. 내부 모듈 계층
  91. 91. 1. 내부 모듈 계층 프론트
  92. 92. 1. 내부 모듈 계층 프론트
  93. 93. 1. 내부 모듈 계층 Request Spec Response Spec A
  94. 94. 1. 내부 모듈 계층 A application application application
  95. 95. 1. 내부 모듈 계층 application application application 스펙 중복
  96. 96. 1. 내부 모듈 계층 application application application 외부 시스템 변경에 대한 영향 파악 어려움
  97. 97. 1. 내부 모듈 계층 A application application application 외부 통신을 담당하는 모듈을 만들어보자
  98. 98. 1. 내부 모듈 계층 client-coduck 환경별 시스템 Host, Header 관리 요청, 응답 Spec 관리 예외 처리 추상화 수준 통일
  99. 99. 1. 내부 모듈 계층 client-coduck 역할이 분명한가? 어플리케이션 비지니스를 가지고 있는가? 도메인 비지니스를 가지고 있는가? YES NO 어플리케이션 시스템을 알고 있는가?? NO YESNO 도메인 모듈 YES YES 내부 모듈 독립 모듈 NO
  100. 100. 1. 내부 모듈 계층 client-coduck
  101. 101. 1. 내부 모듈 계층 client-coduck
  102. 102. 1. 내부 모듈 계층 build.gradle
  103. 103. 1. 내부 모듈 계층 build.gradle
  104. 104. 1. 내부 모듈 계층 build.gradle
  105. 105. 1. 내부 모듈 계층 client-coduck
  106. 106. 1. 내부 모듈 계층
  107. 107. 1. 내부 모듈 계층
  108. 108. 1. 내부 모듈 계층
  109. 109. 1. 내부 모듈 계층 client-coduck
  110. 110. 1. 내부 모듈 계층
  111. 111. 1. 내부 모듈 계층
  112. 112. 1. 내부 모듈 계층 무엇을 얻었나?
  113. 113. 1. 내부 모듈 계층 Request Spec Response Spec A 스펙 변경에 대한 단일 변경 포인트 사용 추적
  114. 114. 도메인 모듈 계층
  115. 115. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 시스템 내부 시스템 외부 2. 도메인 모듈 계층
  116. 116. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 -어플리케이션 비지니스를 모른다
 -하나의 모듈은 최대 하나의 인프라스트럭처 에 대한 책임만 갖는다
 -도메인 모듈을 조합한 더 큰 단위의 도메인 모듈이 있을 수 있다 2. 도메인 모듈 계층
  117. 117. 역할이 분명한가? 어플리케이션 비지니스를 가지고 있는가? 도메인 비지니스를 가지고 있는가? YES NO 어플리케이션 시스템을 알고 있는가?? NO YESNO 도메인 모듈 YES YES 내부 모듈 독립 모듈 NO ? 2. 도메인 모듈 계층
  118. 118. 객체지향 : 패키지 의존성 2. 도메인 모듈 계층
  119. 119. 멀티모듈 설계 : 역할, 의존성 중심 모듈화 2. 도메인 모듈 계층
  120. 120. domain-rds Infrastructure 연동 관리 도메인 계층 구현 2. 도메인 모듈 계층
  121. 121. 2. 도메인 모듈 계층 build.gradle
  122. 122. 2. 도메인 모듈 계층
  123. 123. 2. 도메인 모듈 계층
  124. 124. 2. 도메인 모듈 계층 개발은 “우아한 객체지향” 참고! https://www.slideshare.net/baejjae93/ss-151545329 https://www.youtube.com/watch?v=dJ5C4qRqAgA
  125. 125. 1. 내부 모듈 계층 다중 도메인
  126. 126. 객체지향 : 객체 중심 모듈화 2. 도메인 모듈 계층
  127. 127. Infrastructure 연동 관리
 도메인 계층 구현 2. 도메인 모듈 계층
  128. 128. DB Module 2. 도메인 모듈 계층
  129. 129. 2. 도메인 모듈 계층
  130. 130. DB Module DB Module 2. 도메인 모듈 계층
  131. 131. 다중 인프라스트 처 2. 도메인 모듈 계층
  132. 132. 2. 도메인 모듈 계층
  133. 133. 2. 도메인 모듈 계층
  134. 134. 2. 도메인 모듈 계층 Fallback
  135. 135. 2. 도메인 모듈 계층 Cache
  136. 136. 2. 도메인 모듈 계층
  137. 137. 2. 도메인 모듈 계층
  138. 138. 2. 도메인 모듈 계층
  139. 139. 인프라스트 처를 분리하자 2. 도메인 모듈 계층
  140. 140. 2. 도메인 모듈 계층 Infrastructure 연동 관리 도메인 계층 구현 Infrastructure 연동 관리 도메인 계층 구현 domain-dynamodomain-redis
  141. 141. 2. 도메인 모듈 계층 domain-dynamodomain-redis
  142. 142. 2. 도메인 모듈 계층 Domain Service Module 도메인 서비스 구현
  143. 143. Domain Service Module 2. 도메인 모듈 계층 domain-dynamodomain-redis
  144. 144. domain-dynamodomain-redis Domain Service Module 2. 도메인 모듈 계층
  145. 145. 2. 도메인 모듈 계층 개발은 “우아한 객체지향” 참고! https://www.slideshare.net/baejjae93/ss-151545329 https://www.youtube.com/watch?v=dJ5C4qRqAgA
  146. 146. 2. 도메인 모듈 계층 build.gradle
  147. 147. 2. 도메인 모듈 계층
  148. 148. 2. 도메인 모듈 계층 Fallback Cache
  149. 149. 독립 모듈 계층
  150. 150. 3. 독립 모듈 계층 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 시스템 내부 시스템 외부
  151. 151. 3. 독립 모듈 계층 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 -시스템과 관련 없이 자체로서 독립적인 역할 을 갖는다.
  152. 152. 3. 독립 모듈 계층 application-rds.yml
  153. 153. 3. 독립 모듈 계층 data-dynamo-reactive
  154. 154. 역할이 분명한가? 어플리케이션 비지니스를 가지고 있는가? 도메인 비지니스를 가지고 있는가? YES NO 어플리케이션 시스템을 알고 있는가?? NO YESNO 도메인 모듈 YES YES 내부 모듈 독립 모듈 NO data-dynamo-reactive 3. 독립 모듈 계층
  155. 155. Infrastructure 연동 사용성 제공 Object Mapping 기능 지원 Reactor 사용성 제공 3. 독립 모듈 계층 data-dynamo-reactive
  156. 156. 3. 독립 모듈 계층 build.gradle
  157. 157. 3. 독립 모듈 계층 DynamoReactiveRepository.java
  158. 158. 공통 모듈 계층
  159. 159. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 시스템 내부 시스템 외부 4. 공통 모듈 계층
  160. 160. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 4. 공통 모듈 계층 -Type, Util 등을 정의한다.
  161. 161. 4. 공통 모듈 계층 Root build.gradle
  162. 162. 프론트 4. 공통 모듈 계층
  163. 163. 4. 공통 모듈 계층
  164. 164. 4. 공통 모듈 계층 build.gradle
  165. 165. 4. 공통 모듈 계층 build.gradle
  166. 166. 4. 공통 모듈 계층
  167. 167. 어플리케이션 모듈 계층
  168. 168. 5. 어플리케이션 모듈 계층 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 시스템 내부 시스템 외부
  169. 169. 5. 어플리케이션 모듈 계층 app-api
  170. 170. 5. 어플리케이션 모듈 계층 app-worker
  171. 171. 5. 어플리케이션 모듈 계층 app-admin
  172. 172. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층
  173. 173. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d
  174. 174. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- dynamo domain- redis domain- service domain- redis domain- dynamo
  175. 175. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- dynamo domain- redis domain- service data- dynamo domain- redis domain- dynamo
  176. 176. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- dynamo domain- redis domain- service data- dynamo core domain- redis domain- dynamo
  177. 177. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- dynamo domain- redis domain- service data- dynamo core apiworker admin domain- redis domain- dynamo
  178. 178. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- dynamo domain- redis domain- service data- dynamo core apiworker admin domain- redis domain- dynamo
  179. 179. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- redis domain- dynamo domain- service data- dynamo core apiworker admin
  180. 180. 독립 모듈 내부 모듈 도메인 모듈 어플리케이션 공통 모듈 5. 어플리케이션 모듈 계층 client-a client-b client-c client-d domain- redis domain- dynamo domain- service data- dynamo core apiworker admin
  181. 181. 효과
  182. 182. 명확한 추상화 경계
  183. 183. 레이어 구상 역할이 분명한가? 어플리케이션 비지니스를 가지고 있는가? 도메인 비지니스를 가지고 있는가? YES NO 어플리케이션 시스템을 알고 있는가?? NO YESNO 도메인 모듈 YES YES 내부 모듈 독립 모듈 NO
  184. 184. 1. 내부 모듈 계층 client-coduck 환경별 시스템 Host, Header 관리 요청, 응답 Spec 관리 예외 처리 추상화 수준 통일
  185. 185. 2. 도메인 모듈 계층 Infrastructure 연동 관리 도메인 계층 구현 Infrastructure 연동 관리 도메인 계층 구현
  186. 186. 2. 도메인 모듈 계층 Domain Service Module 도메인 서비스 구현
  187. 187. Infrastructure 연동 사용성 제공 Object Mapping 기능 지원 Reactor 사용성 제공 3. 독립 모듈 계층 data-dynamo-reactive
  188. 188. 역할과 책임의 선
  189. 189. ARepository Shop
 RestClient AService AbService AcService PropertiesEnvironment
 PostProcessor A OperationTimeUtils SqsEventPublisher independently available in system available system domain application system core AbService AcService app-b-api app-c-api Shop
 RestClient shop-client SqsEventPublisher a-event-publisher domain-a ARepository AService A core OperationTimeUtils yaml-impoter PropertiesEnvironment
 PostProcessor
  190. 190. -각 모듈이 갖는 책임과 역할이 명확하여 리펙토링, 기능의 변경의 영향 범위를 파악하기 용이 -경계가 명확해짐으로써 기능의 제공 정도를 예측 가능하여 스파게티 코드 발생 가능성 저하 -역할과 책임에 대한 애매함이 없어짐으로써 어떤 모듈에서 어느정도까지를 개발되야할지 명확 independently available in system available system domain application system core AbService AcService app-b-api app-c-api Shop
 RestClient shop-client SqsEventPublisher a-event-publisher domain-a ARepository AService A core OperationTimeUtils yaml-impoter PropertiesEnvironment
 PostProcessor
  191. 191. 최소 의존성
  192. 192. 1. 내부 모듈 계층 build.gradle
  193. 193. 2. 도메인 모듈 계층 build.gradle
  194. 194. 3. 독립 모듈 계층 build.gradle
  195. 195. 4. 공통 모듈 계층 build.gradle
  196. 196. 각 모듈은 역할에 필요한 최소 의존성 보유
  197. 197. A 어플리케이션은 필요한 모듈만 선택
  198. 198. 꿀팁
  199. 199. 모듈 Scan
  200. 200. Package Convention baemin.com
  201. 201. Package Convention baemin.com com
  202. 202. baemin.com com baemin Package Convention
  203. 203. com baemin projectName Package Convention
  204. 204. com baemin projectName Module Name Package Convention
  205. 205. Spring Framework com baemin projectName Module Name
  206. 206. Spring Framework com baemin projectName Module Name Application.java
  207. 207. Spring Framework com baemin projectName Module Name Application.java Component Scan Base Package
  208. 208. Multi Module com baemin projectName external Application.java com baemin projectName clientA ClientAConfig.java
  209. 209. Multi Module com baemin projectName external Application.java clientA ClientAConfig.java
  210. 210. Multi Module com baemin projectName external Application.java clientA ClientAConfig.java
  211. 211. Multi Module
  212. 212. Multi Module
  213. 213. Spring Framework com baemin projectName Module Name Application.java
  214. 214. Spring Framework com baemin projectName Module Name Application.java
  215. 215. Spring Framework com baemin projectName Module Name Application.java Component Scan Base Package
  216. 216. Multi Module com baemin projectName external clientA ClientAConfig.java Application.java
  217. 217. Multi Module com baemin projectName external clientA ClientAConfig.java Application.java
  218. 218. Multi Module
  219. 219. 각 모듈의 Property
  220. 220. domain-rdsclient-coduck
  221. 221. https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html resources application-{profile}.yml
  222. 222. resources application-dynamo.yml resources application-redis.yml resources application-clienta.yml resources application-clientb.yml application.yml
  223. 223. resources application-dynamo.yml resources application-redis.yml resources application-clienta.yml resources application-clientb.yml application.yml
  224. 224. https://github.com/kingbbode/spring-boot-custom-yaml-importer spring-boot-custom-yaml-importer
  225. 225. 의존성 숨기기
  226. 226. Domain Service Module domain-dynamodomain-redis
  227. 227. Domain Service Module domain-dynamodomain-redis
  228. 228. Domain Service Module domain-dynamodomain-redis
  229. 229. https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation Gradle, API and implementation separation
  230. 230. https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation Gradle, API and implementation separation
  231. 231. CODE
  232. 232. 정리
  233. 233. “좋은 아키텍처는 시스템이 모노리틱 구조로 태어나서 단일 파 일로 배포되더라도, 이후에는 독립적으로 배포 가능한 단위들 의 집합으로 성장하고, 또 독립적인 서비스나 마이크로서비스 수 준까지 성장할 수 있도록 만들어져야한다. 또한 좋은 아키텍처라 면 나중에 상황이 바뀌었을 때 이 진행 방향을 거꾸로 돌려 원 래 형태인 모노리틱 구조로 되돌릴 수도 있어야 한다” - 클린 아키텍처
  234. 234.
  • HyeokjooYoon

    Jan. 25, 2021
  • jinukbaek

    May. 27, 2020
  • captaintailer

    May. 19, 2020
  • hcJung

    May. 4, 2020
  • ssuser609df9

    Mar. 16, 2020
  • ageofsys

    Feb. 27, 2020
  • hyuntaeklee399

    Jan. 26, 2020
  • gavin612

    Sep. 26, 2019
  • eomseunghyun

    Sep. 23, 2019
  • ssuserf2cb68

    Sep. 11, 2019
  • JinHoYim

    Sep. 11, 2019
  • iolo

    Sep. 11, 2019
  • ssuser59a869

    Sep. 6, 2019
  • InBonKuh

    Aug. 29, 2019

2019.08 우아한형제들 테크 세미나 발표자료

Views

Total views

3,132

On Slideshare

0

From embeds

0

Number of embeds

16

Actions

Downloads

57

Shares

0

Comments

0

Likes

14

×