Project

General

Profile

Actions

새기능 #520

open

[백엔드][P2] 안정성·리팩토링 묶음

Added by joungmin ko about 2 months ago. Updated about 2 months ago.

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 등록]

Actions #1

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 조치]

Actions #2

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

Also available in: Atom PDF