MSA(마이크로서비스 아키텍처) 기반으로, JWT 인증, Redis 캐싱, MySQL 데이터 저장, Kafka 이벤트 처리 등을 활용하여 쇼핑몰과 같은 e-commerce API 서비스를 구축하는 것이 최종 목표

Redis: nosql 데이터베이스입니다. ,캐싱 및 세션 관리역할을 맡기위해 사용할 예정입니다.

Kafka: 이벤트 기반 아키텍처 입니다. ,메시지 브로커 역할을 하면서 비동기 이벤트 처리를 담당할 것 입니다.

지난주에 사용했던 서버와 게이트웨이를 준비합니다
api-gateway 의존성
dependencies {
// msa, 비동기 처리 등
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
// 비동기 관련 필요 도구
implementation 'org.springframework.boot:spring-boot-starter-actuator'
// 개발상 편의성 제공, 개발도구
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
// 테스트
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// 스프링 시큐리티
implementation 'org.springframework.boot:spring-boot-starter-security'
// oAuth2에서 자원관리용도, JWT 인증 처리시 보안 강화 용도 활용할수 있음
implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
// jWT 처리, 버전은 참고
implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.2'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.2'
// redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
}
✅ MSA를 위해 비동기 API Gateway (Spring Cloud Gateway + WebFlux) 사용
✅ Eureka를 이용한 서비스 디스커버리
✅ JWT + OAuth2 기반 보안 처리
✅ Redis를 활용한 캐싱 및 세션 관리
✅ 테스트 및 개발 편의성 도구 포함
💡 이 API Gateway는 Spring WebFlux를 기반으로 비동기 방식으로 동작하며, JWT + OAuth2를 통한 보안, Redis 캐싱을 활용하여 성능 최적화가 적용된 구조!

spring security 및 API gateway 보안 관련 설정이 포함되어있습니다.
spring security 에서 예외 처리를 담당 합니다.
ex) 401 인증 오류, 토큰 없이(허가 없이) 특정 페이지 요청 하면 발생 , 권한이 없는 유저가 사용자 요청을 할 경우 (관리자 메뉴를 일반 유저가 접근) 엑세스 거부 403 AccessDenied
JWT 인증 및 토큰 처리,
JWT 토큰 생성 및 검증 로직을 담당
Redis를 활용하여 세션 및 캐싱 처리 관련 패키지
API Gateway, Eureka, JWT, Redis 설정





아마내일은
MSA + JWT() + Redis() + Mysql + Kafka(*) : e-commerce api 구현 끝까지 구현할 예정