모노리스 시스템
- 단일 프로세스로 실행
- 한꺼번에 수정, 배포되어야 함
- 하나가 실패하면 전체가 실패 특정 실패 부분을 찾아내기 어려움
- 스케일 아웃의 대상 -> 모노리스 전체
- 이것만으로 충분히 확정성,탄력성이 보자 가능하나 전체를 확장 -> 비용이 비효율
마이크로서비스 시스템
- 서비스는 각기 다른 독립적인 기능 제공
- 독립적으로 수정 가능하며 별도 배포, 확장 가능
- 하나의 서비스 실패는 전체 실패가 아닌 부분적인 실패를 의미
Martin Folwer
- 중앙 집중 -> api는 java 데이터는 오라클 등 중앙에서 정해줘서 일괄적으로 진행
- 폴리그럿 -> 대략적인 가이드만 잡고 서비스 내에서 잘 쓰거나 활용할 수 있는 형태로 개발
->각 서비스는 서로 다른 언어, 데이터, 저장 기술 사용
- 아키텍처 특성 : 시스템의 속성, 가용성,민첩성,탄력성 등의 해당 시스템이 가져야 할 주요한 속성들
- 아키텍처 결정 : 시스템의 제약조건, 지켜야할 규칙
-> 이미 검증된 아키텍처 특성,스타일,패턴 등을 선택하는 것- 설계 원칙 : 아키텍처 결정을 만족시키는 가이드 라인
- 시스템 구조 : 위의 원칙에 적합한 상위 수준의 시스템 구조를 정의
레이어드 아키텍처
- 사실상의 표준 아키텍처
- 관심사의 분리, 기술 분할
- 아키텍처 결정사항 : 레이어 개방/ 폐쇄 여부
- 스프링의 mvc패턴 -> 프레젠테이션 레이어 부분에 속한 것