[MSA] 보안구성 / Config / 분산추적 / 이벤트 드리븐

왕감자·2025년 2월 7일

2025 내일배움캠프

목록 보기
5/39
post-thumbnail

보안 구성 (OAuth2 + JWT)

OAuth2

토큰 기반의 인증 및 권한 부여 프로토콜

  • 역할
    • 리소스 소유자
    • 클라이언트
    • 리소스 서버
    • 인증 서버

JWT

JSON Web Token

  • 구성
    • 헤더
    • 페이로드
    • 서명

  • [의존성]
    • Eureka Discovery Client
    • Spring Boot Actuator
    • Spring Security
    • implementation 'io.jsonwebtoken:jjwt:0.12.6'



Config 서버 (Spring Cloud Config)

분산 시스템 환경에서 중앙 집중식 구성 관리를 제공하는 프레임워크

  • 애플리케이션의 설정을 중앙에서 관리
  • 변경 사항을 실시간으로 반영
  • Git, 파일시스템, JDBC등 다양한 저장소 지원
  • 모든 마이크로서비스 설정 중앙에서 관리
  • 개발/테스트/운영 등 환경별로 구성을 분리하여 관리 가능
  • 설정 변경 시 재시작하지 않고도 실시간으로 반영

실시간 구성 변경

  1. Spring Cloud Bus
  • 메세징 시스템(RabbitMQ 또는 Kafka 등)을 사용하여 변경 사항 전파
  1. 수동 구성 갱신
  • /actuator/refresh 호출
  1. Spring Boot DevTool
  • 개발 환경에서 파일 변경을 자동으로 감지
  1. Git 저장소 사용
  • Spring Cloud Config 서버가 Git 저장소에서 설정 파일을 읽어오도록 설정

  • [의존성]
    • Config Server
    • Spring Boot Actuator
    • Eureka Discovery Client
  • EnableConfigServer



분산 추적 (Micrometer, Zipkin(Docker))

분산 시스템에서 서비스 간 요청 흐름을 추적하고 모니터링 하는 방법

docker run -d -p 9411:9411 openzipkin/zipkin

http://localhost:9411/zipkin/




이벤트 드리븐 아키텍처 (Spring Cloud System)

시스템에서 발생하는 이벤트(상태 변화나 행동)를 기반으로 동작하는 소프트웨어 설계 스타일

  • 이벤트는 비동기적 처리, 서비스 간의 느슨한 결합을 통해 독립적으로 동작할 수 있게 함

장점

  • 느슨한 결합 - 서비스 간 종속성 제거, 독립적인 개발/배포
  • 확장성 - 수평 확장 용이, 대규모 시스템 용이, 이벤트 프로듀서와 컨슈머를 독립적으로 확장 가능
  • 비동기 처리 - 이벤트를 비동기적으로 처리하여 시스템의 응답성 향상, 요청과 응답을 비동기적으로 처리하여 성능 최적화

단점

  • 복잡성 증가 - 이벤트 흐름과 상태 관리를 체계적으로 설계
  • 장애 전파 - 이벤트 실패 시 다른 서비스로 장애 전파될 수 있음


Spring Cloud System

이벤트 드리븐 마이크로서비스를 구축하기 위한 프레임워크

  • Kafka, RabbitMQ 등의 메세지 브로커와 통합하여 이벤트 스트리밍을 처리
  • 프로듀서와 컨슈머 간의 통신 추상화 - 이벤트 기반 애플리케이션 간편 개발

0개의 댓글