📝 개념 정리
마이크로서비스 아키텍처(MSA)에서는 각 서비스가 독립적으로 동작합니다.
이때, 인증과 인가를 세션 방식으로 처리하면 다음과 같은 문제가 발생합니다.
- 세션 저장소를 모든 서비스가 공유해야 함
- 확장성과 유지보수성이 떨어짐
- 서버 재시작 시 세션 정보 손실 가능
그래서 Stateless(무상태) 방식의 인증이 필요합니다.
이 역할을 맡는 것이 바로 **JWT(Json Web Token)**입니다.
💡 JWT를 사용하는 이유
- Stateless: 서버가 세션을 저장하지 않아도 됨
- 분산 서비스 호환: 모든 마이크로서비스가 같은 토큰 규격으로 인증 가능
- 중앙 집중 보안: API Gateway에서 토큰 검증 후, 유효한 요청만 서비스에 전달
- 확장성: 마이크로서비스 개수가 늘어나도 인증 방식 변경 불필요
⚙️ 마이크로서비스 인증/인가 처리 방법
- JWT 기반 Stateless 인증
- 토큰 갱신 전략(Refresh Token)
- API Gateway에서 중앙 집중식 보안 처리
- 인증된 요청만 마이크로서비스로 라우팅