배경

화면별 분기문이 늘어나면서 번역 키와 색상 토큰이 서로 다른 방식으로 관리되고 있었습니다.

구조화 전략

언어는 `locale -> dictionary`, 테마는 `variant -> palette` 매핑으로 분리해 조건문 확산을 방지했습니다.

TS
const palette = paletteMap[themeVariant];
const t = dictionaryMap[currentLocale];

운영 관점의 이점

UI 컴포넌트는 의미 토큰만 읽게 하여 테마/언어 확장이 로직 변경으로 이어지지 않도록 했습니다.

  • 신규 언어 추가 시 번역 사전만 확장
  • 신규 테마 추가 시 palette 객체만 추가
  • 화면 컴포넌트는 semantic token 소비에 집중

다음 단계

Home/Settings/공통 UI에 남아 있는 inline color를 semantic palette로 전수 치환해 확장 비용을 더 낮출 예정입니다.