본문 바로가기
백엔드개발자/etc

MSA

by 보혀니 2022. 8. 4.

등장배경?

기존에는 우리가 어떠한 방식으로 개발을 진행해왔나?

- Monolithic Architecture, 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 형태

- 화면부터 데이터베이스까지 전체가 하나의 흐름으로 묶여있는 형태

- 웹개발을 예로 들면 웹 프로그램의 개발하기 위해서 모듈별로 개발하고, 개발이 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태이다.

 

Monolithic Architecture 의 단점, 한계

- 서비스를 부분적으로 scale-out 하기가 힘들다.

- 부분의 장애가 전체 서비스의 장애로 이어지는 경우가 발생한다.

- 배포시간이 오래 걸린다.

- 한 프레임워크와 언어에 종속적이다. 

 

 

 

 

MSA란?

MicroService Archtecture,  마이크로서비스 아키텍처

- 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법

- 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성

- API 통해서만 상호작용 할 수 있다. end-point(접근점)을 API형태로 외부에 노출하고, 실질적 세부사항은 모두 추상화 한다. 

- 하나의 비즈니스 범위에 맞춰 만들어지므로 하나의 기능만 수행한다. 

- 각 서비스는 독립된 서버로 타 컴포넌트와 의존성이 없기에 독립된 배포를 하게 된다.

- 데이터분리, 데이터 저장시 하나의 DB에 중앙 집중화 하지 않고 서비스별 별도의 데이터 베이스를 사용한다. 

 

 

 

 

 

출처

https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e

https://wooaoe.tistory.com/57

http://clipsoft.co.kr/wp/blog/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98msa-%EA%B0%9C%EB%85%90/

'백엔드개발자 > etc' 카테고리의 다른 글

DNS, URI(URL,URN), API URL설계  (0) 2023.04.11
IP / TCP / UDP / PORT  (0) 2022.09.06
캐시  (0) 2022.07.24
host 파일 이란?  (0) 2022.07.24
Apache HTTP Server, Apache Tomcat, WEB server, WAS server  (0) 2022.07.08