spring-securityjwtasync-processingapi-designexception-handling
[Pilot Test Analysis System] 분석 자동화 파이프라인 및 JWT 보안 계층 도입
• 2 min read
이전 달까지는 백엔드 시스템에서 모든 클라이언트 요청이 동기식으로 처리되었다. 특히 초기 데모 환경은 내부망 테스트용으로 구축되어 독립된 인증 계층이 부재했다. 이로 인해 여러 클라이언트(연구원)가 동시에 대용량 세션의 비디오 스캔 및 데이터 분석을 요청할 경우, InfluxDB 커넥션 풀이 고갈되고 메인 스레드가 블로킹되어 시스템 부하가 발생하는 제약이 존재했다. 이를 해결하기 위해 백그라운드 기반의 비동기 처리 파이프라인을 구축하고, 엄격한 JWT 기반 인증 시스템을 통합하였다.
[Java / API Server] 비동기 기반 분석 리포트 자동화 파이프라인
SessionDriveSummary및SessionDetectionSummary도메인을 신설하여 텔레메트리 데이터의 집계 결과를 저장하는 리포트 스키마를 구성함.SessionAnalysisFacade를 구현하고@Async를 적용하여 비디오 스캔 완료 후 메인 스레드의 블로킹 없이 자동으로 분석 리포트 생성이 백그라운드에서 진행되도록 설계함.- 시스템 부하를 억제하기 위해 타 서비스(Telemetry API)와의 통신 시
Semaphore를 도입하여 동시 요청 수를 엄격하게 스로틀링(Throttling)함. RestTemplate의 커넥션 및 리드 타임아웃을 명시적으로 설정하여 네트워크 병목 구간에 대비함.
[Spring Security / Auth] JWT 기반 Stateless 인증 시스템 통합
@RestControllerAdvice를 활용한GlobalExceptionHandler를 추가하여 런타임 예외를 중앙 집중적으로 관리함.- 비즈니스 로직에서 발생하는 오류를 컨트롤러에서 400/404 등으로 수동 분기하던 패턴을 폐기하고, 사용자 정의
BusinessException을 통해 표준화된ErrorResponse규격으로 응답하도록 리팩토링함. - 서비스 간 통신 및 관리자 기능 보호를 위해
jjwt라이브러리를 활용하여 JWT(JSON Web Token) 기반의 인증 계층을 도입함. SecurityConfig에서 세션 관리 정책을 Stateless로 강제하고, 커스텀JwtAuthenticationFilter를 필터 체인에 삽입하여 토큰 검증을 수행함.- 단순 조회(GET) 요청은 허용하되, 비디오 스캔, 분석 리포트 생성, 세션 맵핑(POST/PATCH) 기능은 인증된 관리자만 접근할 수 있도록 보안 수준을 격상함.