JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 MSA 입문/실전

MSA 기본 개념

MSA를 왜 배워야할까?
MSA(Microservice Architecture)란?
MSA의 핵심 특징 / MSA의 독보적인 장점
언제 MSA를 도입하는 게 적절할까?
많은 사람들이 MSA가 어렵다고 착각하는 이유
MSA인지 아닌지를 판단하는 기준
MSA를 쉽고 빠르게 배우는 방법

기본적인 마이크로서비스 구축해보기

MSA 프로젝트 요구사항 및 설계
[실습] 각 Microservice에 해당하는 DB 서버 띄우기
[실습] User Microservice 만들기
[실습] Board Microservice 만들기
구현한 MSA 프로젝트를 잘 구현했는 지 전체적으로 검토하기

데이터 조회 API 구현하기 (마이크로서비스 간에 REST API로 통신)

데이터 조회 기능 구현 방식 (모놀리식 vs MSA)
[실습] 다른 마이크로서비스가 사용할 ‘사용자 조회 API’ 만들기
[실습] 특정 게시글 조회 API 만들기
특정 서비스가 장애났을 때, 장애가 전파되지 않게 막는 방법
[실습] 특정 서비스가 장애났을 때, 장애가 전파되지 않게 방어 코드 작성하기
[실습] 게시글 전체 조회 API 만들기 - 1
[실습] 게시글 전체 조회 API 만들기 - 2

데이터 쓰기 API 구현하기 (마이크로서비스 간에 REST API로 통신)

[실습] Point Microservice 만들기 - 1
[실습] Point Microservice 만들기 - 2
[실습] 회원 가입하면 포인트가 적립되도록 만들기
[실습] 사용자 활동 점수 적립 API 만들기
[실습] ‘포인트 차감 → 게시글 작성→ 활동 점수 적립’ 순으로 로직이 처리되도록 만들기

MSA 환경에서 트랜잭션 관리하기

게시글 작성 API 로직 수행 중, 중간에 에러가 발생하면 어떻게 될까?
MSA 환경에서의 트랜잭션 처리 방법
Saga 패턴이란? / 보상 트랜잭션이란?
[실습] 게시글 작성 API에 Saga 패턴 적용시키기 - 1
[실습] 게시글 작성 API에 Saga 패턴 적용시키기 - 2
Eventual Consistency(최종적 일관성)이란?
[참고] Saga 패턴을 구현할 때 고려해야 할 요소 (멱등성, 동시성 이슈 등)

데이터 쓰기 API 구현하기 (마이크로서비스 간에 메시징 기반으로 통신)

MSA 환경에서 언제 메시징 기반(비동기 방식)으로 통신하면 좋을까?
어떻게 구현할 지 설계하기
[실습] 게시글 서비스에서 Kafka로 ‘게시글 작성 완료 이벤트’ 발행하기
[실습] 사용자 서비스에서 Kafka로부터 ‘게시글 작성 완료 이벤트’ 구독하기
[실습] 잘 작동하는 지 테스트하기

‘메시징 기반의 데이터 동기화 방식’으로 데이터 조회 최적화하기

‘데이터 동기화’를 활용한 게시글 조회 API 최적화하기
[실습] 사용자 서비스에서 Kafka로 ‘회원가입 완료 이벤트’ 발행하기
[실습] 게시글 서비스에서 Kafka로부터 ‘회원가입 완료 이벤트’ 구독하기
[실습] 잘 작동하는 지 테스트하기
[실습] 게시글 조회 로직 최적화하기 (

API Gateway를 활용해 클라이언트의 요청을 적절한 서버로 전달하기

API Gateway란?
[실습] Spring Cloud Gateway 셋팅하기 / 라우팅 설정하기
[실습] ‘외부용 API’와 ‘마이크로서비스간 통신용 API’ 구분하기
[실습] API Gateway를 활용해 클라이언트가 접근할 API 제한하기

API Gateway를 활용해 JWT 인증 로직 구현하기

MSA에서 ‘인증 로직’ 구현하는 방법
[실습] 사용자 서비스에 로그인 API 구현하기
[실습] API Gateway에 JWT 인증 로직 구현하기 (
[실습] 게시글 작성 로직 수정하기

마무리

MSA는 꼭 쿠버네티스로 배포해야 할까?
[미션] AWS에 MSA 프로젝트 배포하기
[참고] 완성 프로젝트 Github 주소
← 블로그 목록으로 돌아가기

MSA의 핵심 특징 / MSA의 독보적인 장점

JSCODE 박재성
JSCODE 박재성
2026. 03. 18.
author
JSCODE 박재성
category
MSA
createdAt
Dec 6, 2025 02:15 PM
isPublic
isPublic
series
비전공자도 이해할 수 있는 MSA 입문/실전
slug
msa-core-features-and-advantages
type
post
updatedAt
Mar 18, 2026 09:00

✅ MSA의 핵심 특징

MSA는 다양한 특징을 가지고 있다. 그 중에서 가장 핵심 특징은 독립성이다. 아래 그림을 보면 결제에 관련된 기능, 인증에 관련된 기능, 상품에 관련된 기능을 독립적으로 분리해서 프로젝트를 구성했다. 이게 바로 MSA의 방식대로 서비스를 분리해서 구성한 것이다. 이렇게 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리시킴으로써 다양한 장점이 생기게 된다.
notion image
 
 

✅ MSA의 독보적인 장점

  1. 서비스 별 독립적인 배포 → 배포 사이클이 빨라짐
    1. 개발자가 60명인 회사가 있다고 치자. 하나의 큰 프로젝트를 60명이서 작업하는 것보다, 여러 개의 프로젝트로 나눠서 각 프로젝트를 관리하는 팀을 구성해 독립적으로 작업하는 게 훨씬 효율적이다. 그 이유는 다음과 같다.
      • 서로 의사소통할 인원이 적기 때문에 프로젝트 진행이 빠르다.
      • 팀이 독립적으로 개발/배포를 진행할 수 있다.
      • 코드의 양이 비교적 작기 때문에 코드 작성, 테스트, 빌드 과정의 시간이 훨씬 적게 걸린다.
      실제 우아한형제들과 같이 규모가 있는 회사들의 팀 구성을 보면 배민상품시스템팀, 정산시스템팀 등 다양한 팀으로 나뉘어져있다. 배달의 민족이라는 하나의 서비스를 여러개 프로젝트로 쪼개서 각 팀에 배정해서 관리하고 있다.
       
  1. 데이터베이스의 독립적인 분리 → 대규모 트래픽 처리 용이
    1. 모놀리식 아키텍처에서는 단일 데이터베이스를 활용하는 구조를 많이 채택한다. 하지만 AWS의 단일 데이터베이스의 가장 좋은 성능의 데이터베이스로 셋팅을 한다고 하더라도 트래픽이 감당이 안 되는 순간이 온다.
      읽기 전용 데이터베이스를 추가하거나 캐시를 활용해 트래픽을 줄이려는 시도를 하지만, 이런 셋팅을 다 해도 트래픽을 감당 못할 때가 있다. 이런 경우에 MSA 구조를 활용해 각 서비스 별로 데이터베이스를 따로따로 둠으로써 대규모 트래픽을 감당하기도 한다.
      notion image
      notion image
       
  1. 서비스를 독립적으로 분리 → 장애 전파를 최소화
    1. 모놀리식 서비스에서는 단일 데이터베이스를 사용하고 있기 때문에, 결제 API로 인해 데이터베이스에 장애가 나면 결제와 관련되지 않은 다른 기능들도 100% 같이 장애가 난다.
      반면, MSA 구조에서는 각 서비스 별로 데이터베이스도 독립적으로 분리해서 구축하기 때문에, 결제 서비스가 장애가 나더라도 다른 서비스에는 영향을 덜 끼친다.
      notion image
      notion image
 
 
 

✅ 정리

MSA의 핵심 키워드를 하나 뽑자면 ‘독립성’이다. 이 ‘독립성’이라는 특징 때문에 아래의 3가지 장점이 생긴다고 했다.
  1. 서비스 별 독립적인 배포 → 배포 사이클이 빨라짐
  1. 데이터베이스의 독립적인 분리 → 대규모 트래픽 처리 용이
  1. 서비스를 독립적으로 분리 → 장애 전파를 최소화
(MSA는 사실 이 외에도 더 많은 짜잘짜잘한 장점들을 가지고 있다. 처음에는 위 3가지 핵심 장점만 기억해두면 충분하다. 나머지 다른 장점들은 MSA를 구축하다보면 자연스럽게 알게 된다.)
 
📎
이 글은 비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot) 강의의 수업 자료 중 일부입니다.