Actions
새기능 #520
open[백엔드][P2] 안정성·리팩토링 묶음
Status:
해결
Priority:
보통
Assignee:
-
Start date:
06/27/2026
Due date:
% Done:
100%
Estimated time:
Description
백엔드 구조/안정성 개선:
- ChartController god class(614줄: 차트+youtube+karaoke+lyrics+visitor) 분리.
- getUserIdFromToken JWT 파싱 4곳 중복 → JwtService 추출.
- 외부 HTTP를 curl ProcessBuilder로 호출 → RestTemplate/WebClient(타임아웃·풀) (ChartController:307,371,444).
- 다중 쓰기 경로에 @Transactional 부재 (Auth/Favorite/Flashcard).
- /clearCache가 KEYS * 로 전체 keyspace 삭제(visitor 카운터 포함) → 네임스페이스+SCAN.
- Map<String,Object> 전면 사용 + CLOB 병렬배열 매핑 → DTO/resultMap/typeHandler.
- printStackTrace → SLF4J 로거.
— 6-페르소나 코드리뷰(2026-06-27)에서 도출. 소스 검증 완료. [AI 등록]
Updated by joungmin ko about 2 months ago
- Status changed from 신규 to 진행
- % Done changed from 0 to 60
커밋 edfbfdc. 안전·고가치 항목 처리 완료(빌드·재기동·검증):
[x] getUserIdFromToken 중복(4곳) → JwtService 추출(getUserId/getRole), 인증 가드 401 보존.
[x] /clearCache: KEYS * 전체삭제 → 'cache:' 네임스페이스 + SCAN match 'cache:*'. visitor 카운터 보호.
[x] @Transactional: googleCallback / reviewFlashcard / toggleFavorite(중복키 catch로 race-safe).
[x] printStackTrace → SLF4J 로거.
보류→분리: god-class 분리 · Map→DTO · curl→RestTemplate 는 대형 구조 리팩토링이라 신규 #526로 분리.
검증: BUILD SUCCESS, 클린 부팅(JwtService 와이어링), 엔드포인트 200, 인증 401, cache:* 네임스페이스+visitor 유지. [AI 조치]
Updated by joungmin ko about 2 months ago
- Status changed from 진행 to 해결
- % Done changed from 60 to 100
보류였던 god-class 분리·Map→DTO·curl→RestTemplate가 #526(해결)/#529로 처리됨. 본 묶음의 안전·고가치 항목(JwtService/clearCache SCAN/@Transactional/SLF4J) 완료 + 대형 항목 분리 완결 → 해결로 승격. [AI 조치]
Actions