Spring을 이용한 MSA (Microservices Architecture) 개발을 위해 사용해야 할 도구와 공부해야 할 내용
- Spring Boot
- 핵심: Spring Boot는 Spring 기반의 애플리케이션을 빠르게 개발하도록 도와줍니다. 대부분의 MSA 개발에서는 Spring Boot를 기반으로 하는 경우가 많습니다.
- 공부해야 할 내용: Starter POMs, Auto-Configuration, Spring Boot Actuator, Spring Boot Profiles 등.
- Spring Cloud
- 핵심: MSA에서 필요한 다양한 패턴들을 손쉽게 구현할 수 있도록 도와주는 프로젝트입니다.
- 공부해야 할 내용:
- Service Discovery (E.g., Spring Cloud Netflix Eureka)
- Circuit Breaker (E.g., Spring Cloud Netflix Hystrix)
- API Gateway (E.g., Spring Cloud Gateway)
- Configuration Management (E.g., Spring Cloud Config)
- Distributed Tracing (E.g., Spring Cloud Sleuth with Zipkin)
- Docker & Kubernetes
- 핵심: MSA에서는 여러 마이크로서비스를 독립적으로 배포하고 관리해야 합니다. Docker와 Kubernetes는 이를 효과적으로 지원합니다.
- 공부해야 할 내용: Containerization, Docker Compose, Kubernetes Pods/Services/Deployments/ConfigMaps/Secrets.
- Spring Data JPA & Databases
- 핵심: 각 마이크로서비스는 자체 데이터베이스를 가질 수 있으며, Spring Data JPA를 사용하여 DB 작업을 쉽게 할 수 있습니다.
- 공부해야 할 내용: Entity definitions, Repositories, Database Transactions, Multiple Datasource configurations.
- Spring Security & OAuth2
- 핵심: MSA에서는 서비스간의 보안 및 인증이 중요합니다.
- 공부해야 할 내용: Authentication, Authorization, Tokens, OAuth2 flows, JWT (JSON Web Tokens).
- Messaging Systems
- 핵심: 비동기 통신 및 이벤트 기반 아키텍처를 위해 메시지 시스템이 필요합니다.
- 공부해야 할 내용: RabbitMQ, Apache Kafka, Spring Cloud Stream.
- API Documentation & Testing
- 핵심: 여러 서비스들을 관리하며 통합 테스팅과 문서화는 필수적입니다.
- 공부해야 할 내용: Swagger, Spring REST Docs, Integration Testing with MockMvc.
- Monitoring & Logging
- 핵심: 분산 아키텍처에서 로깅과 모니터링은 필수입니다.
- 공부해야 할 내용: ELK Stack (Elasticsearch, Logstash, Kibana), Grafana, Prometheus.
'Memo' 카테고리의 다른 글
아이디어 저장소 (0) | 2022.11.25 |
---|---|
회사에서 원하는 back-end 능력 (0) | 2022.11.22 |