728x90
Monolithic
Monolithic이란 '한 덩어리로 뭉친', '하나의 구조로 된' 의미를 가지고 있다.
프로젝트 하나가 하나의 아키텍처로 뭉쳐진 구조를 뜻한다.
기존에 하나의 서버를 두고 그 서버 내에서 모든 작업을 처리하는 구조로 생각하면 편하다.
Monolithic 구조의 장점
- 작은 규모의 프로젝트 개발 시 효율적
- 배포와 테스트가 간편(하나의 패키지로 묶여 있기 때문)
단점
- 확장의 어려움(대형 프로젝트 개발 시 확장성에서 문제가 생긴다)
- 하나의 서비스가 다른 서비스와 문제를 일으킬 수 있다
- 배포 시 모든 서비스가 중단됨
MicroService
Monolithic와 반대대는 개념
전체 서비스를 잘게 나누어 이루어진 구조
하나의 애플리케이션을 기능별로 패키 징하여 여러 개의 작은 애플리케이션으로 나누어 서비스를 담당하도록 설계하는 구조이다.
장점
- 개별 서비스 단위 배포 가능 -> 새로운 기능을 적용하기 편함
- 서버 확장이 용이함
- 요구사항의 잦은 변경에 대응하기 쉬움
단점
- 문제 해결이 쉽지 않음
- 환경이 분산되는 만큼 유지보수에 자원이 더 들어감
- 테스팅 과정이 복잡해짐
- Monolithic와 비교해서 구현이 어려움
- API 호출을 통한 통신 구조상 네트워크에 의해 성능 이슈 발생
- 트랜잭션 처리 성능 향상에 대한 비용
즉 MSA의 목표는
Application을 나누어 클라우드 환경에서 운영하며 확장이 용이한 구조로 설계한다.
로 볼 수 있다.
728x90
'CS 지식' 카테고리의 다른 글
블록, 논 블록, 동기, 비동기 (0) | 2022.06.28 |
---|---|
인스턴스변수의 재할당 (0) | 2022.06.13 |
객체와 클래스, 인스턴스 (0) | 2022.06.13 |