Redirect 서버 리팩토링 - 파일럿 프로젝트
백엔드
Redirect 서버 리팩토링 - 파일럿 프로젝트
두줄요약
레거시 Redirect 서버를 Spring Boot 기반으로 리팩토링해 클릭 요청, 캐시, 로그 구조를 개선했습니다. 푸시 연동과 Short URL 처리까지 통합해 확장 가능한 형태로 설계했습니다.
문제 상황
- 레거시 Redirect 서버의 Spring 3, Java 6 기반 구조로 인한 리팩토링 필요성
- 클릭 요청의 로그가 성공/실패만 구분되어 METHOD 카테고리별 분석과 확장에 한계
- 캐시와 비동기 처리 로직의 오동작, 푸시 연동과 Short URL 처리 요구 추가
구조와 흐름
- Spring Boot, Gradle, JPA, Querydsl, EhCache, Logback 기반으로 재설계
- 클릭 요청 시 Cache 또는 DB에서 RedirectUrl 조회 후 로그 적재와 리다이렉트 수행
- 로그는 MDC와 SiftingAppender로 METHOD 카테고리별 파일 분리
해결 방법
- Spring Cache로 전환하면서 key 문자열 형식까지 맞춰 캐시 조회 문제 수정
- EhCacheManagerFactoryBean의 shared 설정으로 테스트 환경의 중복 CacheManager 문제 해결
- logPattern을 설정 파일로 분리해 METHOD별 포맷과 변수 개수 조정 가능하게 구성
- push API 연동과 nginx rewrite로 푸시 링크, Short URL 요청을 redirect 서버로 통합
