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 구현을 참조하고 있어, 단순 삭제 시 문서가 깨집니다.
할 일:
부가 효과: clone 용량 감소, 코드 검색 노이즈 제거, ESLint/보안 스캐너의 오탐 감소
3. tsconfig.json 프로젝트 분리 (main / preload / renderer)
현황: main·preload·renderer가 단일 tsconfig.json 을 공유합니다. 그 결과:
lib에 DOM이 포함되어 메인 프로세스 코드에서도 window, document, localStorage 등이 타입 체크를 통과합니다. 런타임에는 존재하지 않으므로 컴파일 단계에서 잡아야 할 오류를 놓칩니다.
- 반대로 렌더러에서 Node 전용 API를 참조해도 타입상 막히지 않습니다.
할 일:
주의: 분리 직후 기존에 숨어 있던 타입 오류가 다수 드러날 가능성이 높습니다.
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()로 번역하는 방식이 가장 깔끔합니다. 로그 저장 시에도 언어 중립적이라는 이점이 있습니다.규모: 기능 단위 작업 (별도 PR 권장)
2.
legacy/디렉터리 제거현황: 리포지토리 루트의
legacy/에 Electron 재작성 이전의 Python/웹 코드 약 2.6MB가 남아 있습니다. 빌드·테스트·런타임 어디에서도 참조되지 않는 죽은 코드입니다.막고 있는 것:
README.md가 legacy 구현을 참조하고 있어, 단순 삭제 시 문서가 깨집니다.할 일:
legacy/삭제pre-electron-legacy)부가 효과: clone 용량 감소, 코드 검색 노이즈 제거, ESLint/보안 스캐너의 오탐 감소
3.
tsconfig.json프로젝트 분리 (main / preload / renderer)현황: main·preload·renderer가 단일
tsconfig.json을 공유합니다. 그 결과:lib에DOM이 포함되어 메인 프로세스 코드에서도window,document,localStorage등이 타입 체크를 통과합니다. 런타임에는 존재하지 않으므로 컴파일 단계에서 잡아야 할 오류를 놓칩니다.할 일:
tsconfig.node.json(main + preload,lib: ["ES2023"], DOM 제외)tsconfig.web.json(renderer,lib: ["ES2023","DOM","DOM.Iterable"])tsconfig.json을references기반 솔루션 파일로 전환npm run typecheck가 두 프로젝트를 모두 검사하도록 수정parserOptions.project도 함께 갱신주의: 분리 직후 기존에 숨어 있던 타입 오류가 다수 드러날 가능성이 높습니다.