Skip to content

MicroService Design Pattern ‐ DeComposition Patterns

woo jin edited this page Mar 26, 2026 · 1 revision

MicroService Design Pattern - DeComposition Patterns

Decomposition 목적

  • 서비스 분해 목적 → 독립적인 확장과 배포 필요
  • MSA에서 어떤 부분이 독립적인 확장 및 배포가 필요한가를 명확하게 식별할 필요가 있다.
  • 설계 원칙 - 요구사항에 따라 서비스 분해, 확장성 고려

CheckList 만들어보기

  • 마이크로서비스는 "한 가지"에 집중해야 한다.
    • 각 서비스에 대한 단일 책임
    • 비즈니스 도메인 / Bounded Context / 하위 도메인 모델 패턴
  • 마이크로서비스는 적당한 크기로 설계해야 한다.
    • 신중하게 설계된 도메인 모델
    • 각 서비스는 독립적으로 작업 가능한 소규모 팀에서 빌드 가능하도록 구현
  • 많은 커뮤니케이션 피하기
    • 하나의 기능을 2개의 서비스로 분할 후 각 서비스에 대한 잦은 커뮤니케이션을 지양한다.
  • 종속성에 대한 제약을 없애기
    • 서비스와 하위 서비스 간 종속성이 여러 개 있고, 이를 함께 배포해야 하는 경우는 재분할이 필요하다.
  • 다른 서비스에 영향없이 마이크로서비스에 대한 배포가 가능해야 한다.
    • 서비스가 밀접하게 결합되어선 안되며, 독립적으로 발전이 필요하다.

Practice - 예약 서비스

스크린샷 2026-03-26 오후 10 59 45

📖 Java

📖 Kotlin

📖 Coroutine

📖 Spring

📖 Spring Security

📖 Spring Batch

📖 Reactive Programming

📖 Database

📖 MySQL

📖 Redis

📖 JPA

📖 QueryDsl

📖 MSA

📖 Kafka

📖 Apache Flink

  • [Apache Flink - Apache Flink Architecture]
  • [Apache Flink - Stream Processing]
  • [Apache Flink - Data Stream API & Window]
  • [Apache Flink - State Management]

📖 HTTP

📖 AWS

📖 Docker

📖 Kubernetes

📖 CI/CD

📖 Nginx

📖 Monitoring🥈

  • [Monitoring - Log Concept]
  • [Monitoring - Log Level & Filter]
  • [Monitoring - Logback]
  • [Monitoring - Log Collection with ELK Stack]
  • [Monitoring - Log Monitoring with Kibana]
  • [Monitoring - Building a Monitoring System with Spring Boot Actuator]
  • [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]

📖 Test

📖 Effective Java 3/E

📖 Kotlin Academy - Effective Kotlin

📖 Kotlin Academy - 핵심편

📖 스프링으로 시작하는 리액티브 프로그래밍

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

📖 Clean Code

📖 리팩토링 2판

📖 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

📖 GraphQL

Clone this wiki locally