Skip to content

후속 과제: 메인 프로세스 i18n, legacy 디렉터리 제거, tsconfig 프로젝트 분리 #12

Description

PR #11(코드 리뷰 지적사항 일괄 수정)에서 의도적으로 범위 밖으로 미룬 항목들입니다. 각각 독립적인 작업 단위라 별도로 처리합니다.


1. 메인 프로세스 하드코딩 한국어 문자열 i18n 처리

현황: 렌더러는 5개 언어(en/ko/ja/zh-CN/es) i18n이 적용되어 있으나, 메인 프로세스에는 사용자에게 노출되는 한국어 문자열이 약 255개 하드코딩되어 있습니다. 수집 진행 로그, 오류 메시지, 온보딩 안내문 등이 언어 설정과 무관하게 항상 한국어로 표시됩니다.

주요 위치:

  • src/main/collectors/*.ts — 수집 진행/경고/오류 메시지
  • src/main/onboard.ts — 온보딩 단계 안내
  • src/main/portal.ts — 포털 자동화 상태 메시지
  • src/main/ediscovery*.ts — 내보내기 파싱 경고

제안 방향:

  • 메인 프로세스가 문자열 대신 { key, params } 형태의 구조화된 메시지를 IPC로 보내고, 렌더러가 t()로 번역하는 방식이 가장 깔끔합니다. 로그 저장 시에도 언어 중립적이라는 이점이 있습니다.
  • 255개 × 5개 언어 = 1,275개 번역이 필요하므로 기계번역에 그대로 의존하면 품질 리스크가 큽니다. 최소한 en/ko는 사람이 검수해야 합니다.

규모: 기능 단위 작업 (별도 PR 권장)


2. legacy/ 디렉터리 제거

현황: 리포지토리 루트의 legacy/에 Electron 재작성 이전의 Python/웹 코드 약 2.6MB가 남아 있습니다. 빌드·테스트·런타임 어디에서도 참조되지 않는 죽은 코드입니다.

막고 있는 것: README.md가 legacy 구현을 참조하고 있어, 단순 삭제 시 문서가 깨집니다.

할 일:

  • README에서 legacy 참조 정리 (마이그레이션 노트로 대체하거나 삭제)
  • legacy/ 삭제
  • 히스토리 보존이 필요하면 삭제 전 태그를 하나 남기기 (예: pre-electron-legacy)

부가 효과: clone 용량 감소, 코드 검색 노이즈 제거, ESLint/보안 스캐너의 오탐 감소


3. tsconfig.json 프로젝트 분리 (main / preload / renderer)

현황: main·preload·renderer가 단일 tsconfig.json 을 공유합니다. 그 결과:

  • libDOM이 포함되어 메인 프로세스 코드에서도 window, document, localStorage 등이 타입 체크를 통과합니다. 런타임에는 존재하지 않으므로 컴파일 단계에서 잡아야 할 오류를 놓칩니다.
  • 반대로 렌더러에서 Node 전용 API를 참조해도 타입상 막히지 않습니다.

할 일:

  • tsconfig.node.json (main + preload, lib: ["ES2023"], DOM 제외)
  • tsconfig.web.json (renderer, lib: ["ES2023","DOM","DOM.Iterable"])
  • 루트 tsconfig.jsonreferences 기반 솔루션 파일로 전환
  • npm run typecheck가 두 프로젝트를 모두 검사하도록 수정
  • ESLint parserOptions.project도 함께 갱신

주의: 분리 직후 기존에 숨어 있던 타입 오류가 다수 드러날 가능성이 높습니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions