Project

General

Profile

Actions

새기능 #529

open

[백엔드/리팩토링] Map<String,Object> → DTO/resultMap 단계 전환

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

Status:
진행
Priority:
보통
Assignee:
-
Start date:
06/27/2026
Due date:
% Done:

40%

Estimated time:

Description

#526에서 분리(보류). 매퍼/컨트롤러의 Map<String,Object>(UPPER_SNAKE) 전면 사용을 DTO+MyBatis resultMap/typeHandler로 전환. 프론트가 UPPER_SNAKE 키에 의존하므로 @JsonProperty로 JSON 키를 보존하며 엔드포인트 단위 단계 적용. getLyrics의 oracle.sql.CLOB 병렬배열도 typeHandler로. 순수 내부품질. [AI 등록]

Actions #1

Updated by joungmin ko about 2 months ago

  • Status changed from 신규 to 진행
  • % Done changed from 0 to 40

1차 증분 완료(커밋 e71f3b4): 가장 취약했던 getLyrics의 oracle.sql.CLOB 병렬배열 매핑 → LyricsDto + MyBatis CLOB 자동변환.

  • model/LyricsDto 신설, findLyrics 반환 타입화, XML resultType 변경(CLOB→String 자동, mapUnderscoreToCamelCase).
  • 컨트롤러는 동일 응답 엔벨로프를 타입 게터로 구성, 드라이버 결합(oracle.sql.CLOB) 제거.
  • 검증: /lyrics 응답 바이트 동일(33,415B), not-found {found:false} 보존, null 필드 유지.

보류/비권장: 나머지 차트조회 Map들은 fragile하지 않고 단지 untyped이며, 프론트가 응답의 UPPER_SNAKE 키에 직접 의존해 DTO 전환 시 필드마다 @JsonProperty(UPPER_SNAKE)가 필요 — 기능 이득 0 + 회귀 리스크. 구체적 필요 발생 시 엔드포인트 단위로 단계 적용 권장. [AI 조치]

Actions

Also available in: Atom PDF