# 마이크로서비스 패턴 (microservices-patterns)

> 서비스 분해, 동기·비동기 통신, 서비스별 DB, Saga, 서킷 브레이커 같은 복원력 패턴을 정리한 참고 자료입니다.

- 카테고리: [아키텍처 개선](https://www.myskills.tools/ko/categories/architecture-tuning/)
- 출처: 커뮤니티 · Seth Hobson
- 저장소: https://github.com/wshobson/agents/tree/main/plugins/backend-development/skills/microservices-patterns (commit 0f73766)
- SKILL.md: https://github.com/wshobson/agents/blob/main/plugins/backend-development/skills/microservices-patterns/SKILL.md
- 설치 명령: `npx skills add wshobson/agents --skill microservices-patterns`
- 라이선스: MIT
- 호환 도구: Claude Code, Codex, Cursor, Copilot, OpenCode
- 권한: read-repo ✓, write-files ✓, shell ✗, network ✗
- 상태: 스캔 통과
- 규칙 스캔으로 모든 위험을 찾을 수는 없습니다. 설치 전에 이 스킬의 SKILL.md를 읽고 권한을 확인하세요.

## 핵심 규칙

각 서비스는 자기 데이터를 소유하며 데이터베이스를 공유하지 않습니다.

## 실행 단계

1. **서비스 경계 설정** — 비즈니스 역량이나 DDD 하위 도메인으로 나누거나, 스트랭글러 피그 패턴으로 모놀리스에서 점진적으로 떼어 냅니다.
2. **통신 방식 선택** — REST·gRPC·GraphQL 동기 호출과 Kafka·메시지 큐·Pub/Sub 비동기 이벤트 중에서 고르고 API 게이트웨이도 고려합니다.
3. **분산 데이터 관리** — 서비스마다 DB를 두고, 서비스 간 트랜잭션은 Saga와 보상 작업으로 최종 일관성을 맞춥니다.
4. **복원력 추가** — 서킷 브레이커로 빠르게 실패시키고, 지수 백오프로 재시도하며, 벌크헤드로 자원을 격리해 영향을 줄입니다.

## 권한 설명 (SKILL.md 기준)

| 기능 | 필요 여부 | 설명 |
|---|---|---|
| 파일 쓰기 | 필요 | 마이크로서비스를 구현할 때 참고 예제에 따라 서비스, 이벤트, Saga 등의 코드를 작성합니다. |
| 명령 실행 | 필요 없음 | 설계 참고 자료이며 명령 실행을 요구하지 않습니다. |
| 네트워크 송신 | 필요 없음 | 외부 네트워크나 서비스 접근을 요구하지 않습니다. |

## SKILL.md 프런트매터(YAML)

```yaml
---
name: microservices-patterns
description: Design microservices architectures with service boundaries, event-driven communication, and resilience patterns. Use when building distributed systems, decomposing monoliths, or implementing microservices.
---
```

홈: https://www.myskills.tools/ko/ · URL: https://www.myskills.tools/ko/skills/microservices-patterns/
