#1. 마이크로서비스 아키텍처의 진화
A. Monolith

- 전통적인 방식
- 단일 서버 내에 HTML, Javascript, CSS, Business Logic이 모여있음
“장점”
- 소규모 팀과 앱에 대해 단순한 개발과 배포를 지원
- 팀이 작거나 응용프로그램이 작을 경우 이점이 있음
- 적은 크로스-커팅 고려
- cross-cutting : 하나의 변경으로 인해 다른 영역에 영향을 미친다고 하는 프로그램 관점
- 크로스-커팅은 보안, 로깅 같은 비기능적요건에 영향을 미침
- 네트워크 지연 없이 더 나은 성능을 제공
“단점”
- 신기술을 채택하기 어려움
- 전체를 최신버전으로 수정하거나, 안하거나 둘 중 하나
- 응용 프로그램 내부 민첩성이 매우 제한되기 때문
- 웹 어플리케이션에 대한 엄격한 테스트와 리뷰가 이루어져야 함
- 애플리케이션의 확장성과 가용성에 부족함이 있음
B. 서비스 지향 아키텍처 - SOA(Service-Oriented Architecture)

- 조직 면에서 이전 아키텍처 대비 크게 개선됨
- UI Logic, Back-End Logic 분리