refactor: 데드코드 정리 + 대형 파일 분리 + FSD 위반 해소 #19

병합
htlee feature/refactor-cleanup 에서 develop 로 7 commits 를 머지했습니다 2026-02-17 06:05:41 +09:00
소유자

Summary

  • Step 1: 데드코드 삭제 (filter.ts, mockFleet.ts, hexToRgb.ts)
  • Step 2-1: useGlobeShips 977줄 → 서브훅 3+1개 분리
  • Step 2-2: useDeckLayers 678줄 → 레이어 팩토리 추출
  • Step 2-3: useGlobeOverlays 600줄 → 오버레이별 서브훅 2+1개 분리
  • Step 2-4: DashboardPage 808줄 → 사이드바 + 상태 훅 추출
  • Step 2-5: styles.css 1,814줄 → 15개 컴포넌트 CSS 파일 분리
  • Step 3: FSD 위반 해소 (DEPTH_DISABLED_PARAMS, SHIP_ICON_MAPPING, getMapTilerKey를 shared/로 이동)

Test plan

  • npm run build:web 성공
  • npm run lint 0 errors
  • 지도 렌더링 정상 동작 확인
  • 선박 아이콘/라벨 표시 확인
  • 기상 오버레이 정상 동작 확인
  • 항적 재생 기능 확인

🤖 Generated with Claude Code

## Summary - **Step 1**: 데드코드 삭제 (filter.ts, mockFleet.ts, hexToRgb.ts) - **Step 2-1**: useGlobeShips 977줄 → 서브훅 3+1개 분리 - **Step 2-2**: useDeckLayers 678줄 → 레이어 팩토리 추출 - **Step 2-3**: useGlobeOverlays 600줄 → 오버레이별 서브훅 2+1개 분리 - **Step 2-4**: DashboardPage 808줄 → 사이드바 + 상태 훅 추출 - **Step 2-5**: styles.css 1,814줄 → 15개 컴포넌트 CSS 파일 분리 - **Step 3**: FSD 위반 해소 (DEPTH_DISABLED_PARAMS, SHIP_ICON_MAPPING, getMapTilerKey를 shared/로 이동) ## Test plan - [x] `npm run build:web` 성공 - [x] `npm run lint` 0 errors - [x] 지도 렌더링 정상 동작 확인 - [x] 선박 아이콘/라벨 표시 확인 - [x] 기상 오버레이 정상 동작 확인 - [x] 항적 재생 기능 확인 🤖 Generated with [Claude Code](https://claude.com/claude-code)
htlee added 7 commits 2026-02-17 00:05:05 +09:00
- entities/vessel/lib/filter.ts (미사용 필터 유틸)
- entities/vessel/model/mockFleet.ts (미사용 mock 데이터)
- shared/lib/color/hexToRgb.ts (MapSettingsPanel 로컬 중복)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- useGlobeShipLabels: Mercator 선명 라벨
- useGlobeShipLayers: Globe 선박 아이콘 레이어 + GeoJSON
- useGlobeShipHover: Globe 호버 오버레이 + 클릭 선택
- useGlobeShips: 오케스트레이터 (기존 호출부 호환)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- buildMercatorDeckLayers: Mercator 모드 Deck.gl 레이어 팩토리
- buildGlobeDeckLayers: Globe 모드 Deck.gl 레이어 팩토리
- useDeckLayers: 오케스트레이션 + 툴팁/클릭 + setProps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- useGlobePairOverlay: pair lines + pair range + paint
- useGlobeFcFleetOverlay: fc lines + fleet circles + paint
- useGlobeOverlays: 오케스트레이터 (기존 호출부 호환)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
DashboardPage.tsx (808줄) → 3파일 분리:
- useDashboardState.ts (147줄): UI 상태 관리 훅
- DashboardSidebar.tsx (430줄): 좌측 사이드바 컴포넌트
- DashboardPage.tsx (295줄): 레이아웃 + 지도 영역

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
styles.css 모놀리스를 @import 기반 모듈 구조로 분리:
- base.css: CSS 변수, 리셋, 폰트
- layout.css: 그리드 레이아웃, 반응형
- components/: topbar, panels, toggles, speed, vessel-list,
  ais-list, alarms, relations, map-panels, map-settings,
  auth, weather, weather-overlay

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
htlee merged commit c8c1b556d6 into develop 2026-02-17 06:05:41 +09:00
"로그인하여 이 대화에 참여"
No reviewers
레이블 없음
마일스톤 없음
담당자 없음
참여자 1명
알림
마감일
기한이 올바르지 않거나 범위를 벗어났습니다. 'yyyy-mm-dd'형식을 사용해주십시오.

마감일이 설정되지 않았습니다.

의존성

No dependencies set.

Reference: gc/gc-wing#19
No description provided.