일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- AttributeError
- flask
- 향상된 for문
- 클래스추가
- 로그인기능 #
- nat inside
- 비절차형 언어
- 마이크로서비스아키택처
- 토글기능
- Arrays.sort()
- soild
- 멀티프로세스
- oop 4대 특성
- 타입오류
- 4-Way Handshake
- 빅오표기법
- 회원가입기능
- MSA
- CORS
- 3-Way Handshake
- 배열오름차순정렬
- 의존성주입
- 클래스삭제
- 객체지향 5대 특징
- 프로그래머스
- 분산형 아키택처
- jquery
- 의존역적원칙
- 함수지향
- 객체지향
- Today
- Total
개발하는 체대생
MSA(Micro Service Architecture)란? 본문
질문 : MSA(Microservice Architecture)에 대해서 설명해주세요.
답변 : MSA (Microservice Architecture)는 애플리케이션을 작은 단위인 마이크로서비스로 나누어 개발하는 아키텍처입니다. 이를 통해 서비스의 확장성과 유연성을 높일 수 있으며, 개별적으로 배포, 관리, 확장이 가능해지므로 개발과 운영의 복잡성을 줄일 수 있습니다.
MSA (Microservice Architecture)란?
MSA는 애플리케이션을 작은 기능 단위인 마이크로서비스로 나누어 개발하는 아키텍처입니다. 기존의 모놀리식 아키텍처에서는 애플리케이션을 하나의 큰 덩어리로 개발하였지만, 분산형 아키택처인 MSA에서는 각각의 마이크로서비스가 독립적으로 개발, 배포, 확장될 수 있습니다.
이를 통해 서비스의 확장성과 유연성을 높일 수 있으며, 개별적으로 배포, 관리, 확장이 가능해져 개발과 운영의 복잡성을 줄일 수 있습니다. 또한, 마이크로서비스 간의 의존성이 낮아져 개발과 테스트를 독립적으로 수행할 수 있으며, 서비스의 장애가 전체 시스템에 영향을 미치는 것을 방지할 수 있습니다.
MSA의 장단점
장점
- 확장성: 마이크로서비스는 독립적으로 개발, 배포, 확장될 수 있기 때문에 필요한 서비스만 확장할 수 있습니다. 이는 전체 시스템의 성능을 향상시킬 수 있습니다.
- 유연성: 마이크로서비스는 각각의 서비스별로 적합한 기술 스택, 데이터베이스 등을 선택할 수 있습니다. 또한, 각각의 서비스가 독립적으로 운영될 수 있기 때문에 개별적으로 업그레이드나 롤백이 가능합니다.
- 빠른 개발: 각각의 마이크로서비스는 작고 독립적인 기능 단위로 구성되어 있기 때문에, 빠른 개발이 가능합니다.
- 높은 가용성: 마이크로서비스는 분산되어 운영될 수 있기 때문에, 하나의 서비스에 장애가 발생하더라도 전체 시스템이 영향을 받지 않습니다.
단점
- 운영 복잡성: 서비스 간의 의존성이 낮아져 개발과 테스트가 용이해지지만, 서비스 간의 통신이 필요하므로 인프라 관리와 모니터링 등의 운영이 복잡해집니다.
- 분산 시스템의 복잡성: 마이크로서비스는 분산되어 운영됩니다. 이는 서비스 간의 네트워크 지연, 요청/응답 처리 시간 등의 문제를 발생시킬 수 있습니다.
- 데이터 관리의 어려움: 서비스 간의 데이터 일관성을 유지하기 위해서는 추가적인 작업이 필요합니다. 또한, 서비스마다 데이터베이스를 각각 운영해야 하기 때문에, 데이터 관리가 어려워집니다.
MSA에서 사용되는 주요 기술
컨테이너: MSA에서는 서비스 간의 독립성을 유지하기 위해 컨테이너 기술을 활용합니다. 컨테이너는 각각의 서비스를 독립적으로 운영할 수 있게 해주는 기술입니다.
API 게이트웨이: API 게이트웨이는 클라이언트와 마이크로서비스 간의 통신을 관리하는 역할을 합니다. API 게이트웨이를 사용하면, 마이크로서비스의 IP 주소나 포트 번호를 클라이언트에게 노출하지 않고, 통신을 관리할 수 있습니다.
서비스 디스커버리: 서비스 디스커버리는 마이크로서비스가 동적으로 등록, 검색, 선택될 수 있게 해주는 기술입니다. 이를 통해, 마이크로서비스 간의 통신이 간편해집니다.
분산 추적: 분산 추적은 분산 시스템에서 서비스 간의 통신을 추적하고, 디버깅하는 기술입니다. 이를 통해, 문제 발생 시 빠른 대처가 가능해집니다.
결론
마이크로서비스아키택처(MSA)를 사용하면, 서비스의 확장성과 유연성을 높일 수 있으며, 개발과 운영의 복잡성을 줄일 수 있지만, 운영 복잡성과 분산 시스템의 복잡성, 데이터 관리의 어려움 등의 문제점도 함께 있기 때문에 프로젝트 규모와 특성에 맞는 아키택처를 적용하는 것이 좋습니다.
'취업스터디' 카테고리의 다른 글
자료구조 List, Set, Map, HashMap (0) | 2023.03.30 |
---|---|
제네릭이란? (0) | 2023.03.29 |
DB에서 Index란? (0) | 2023.03.28 |
DI(Dependency Injection)란? (0) | 2023.03.28 |
RESTful API란? (0) | 2023.03.27 |