Files
2nd/10_Wiki/Topics/G1nation_Build_Fix_Report.md
T

4.6 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit, inferred_by, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score tags raw_sources last_reinforced github_commit inferred_by tech_stack
wiki-2026-0508-g1nation-build-fix-report G1nation Build Fix Report 10_Wiki/Topics needs_review self
none A 0.92
uncategorized
2026-05-08 pending Claude Opus 4.7 (auto-normalize 2026-05-08)
language framework
unspecified unspecified

[Report] G1nation Extension Encoding & Engine Rebuilding

Date: 2026-04-24 Author: PD Kodari (AI) Status: COMPLETED & PACKAGED (v2.2.15)

1. 개요 (Overview)

ConnectAI에서 G1nation으로의 브랜딩 전환 이후 발생한 심각한 빌드 오류 및 런타임 불안정성을 해결하기 위한 긴급 수술을 집행함. 소스 코드 내 인코딩 오염과 코드 복제(Duplication)로 인해 npm run compile이 불가능한 상태였음.

2. 주요 결함 (Critical Issues)

  • 인코딩 지뢰 (Encoding Corruption): extension.ts 내 한글 주석 및 UI 문자열이 UTF-8 형식을 벗어나 깨지면서 따옴표(') 인식을 방해함 -> Unterminated string literal 에러 발생.
  • 좀비 코드 (Ghost Blocks): 함수 외부에 버려진 실행 코드와 닫는 중괄호(})들이 산재하여 문법 파괴.
  • 엔진 중복 (Engine Duplication): _executeActions 함수가 두 군데 이상 중복 정의되어 로직 충돌 및 용량 비대화 초래.
  • 문법 오용: execSync.catch()를 사용하는 등 동기/비동기 혼선 발견.

3. 수술 과정 (Surgical Process)

총 20단계에 걸친 **PowerShell 레이저 수술(Line-by-line Patch)**을 통해 표준 replace 도구의 인코딩 한계를 극복함.

  • v1~v10: 설정 메뉴(_handleSettingsMenu) 및 브레인 메뉴(_handleBrainMenu)의 깨진 텍스트를 영문/표준 UTF-8로 전면 교체.
  • v11~v18: 중복된 코드 블록들을 찾아내어 삭제하고, 흩어진 액션 핸들러들을 하나로 통합.
  • v19: 메인 엔진(_executeActions)을 중복 없는 최신 구조로 리빌딩.
  • v20: 함수 외부에 잔존하던 '유령 코드'와 깨진 문자열 최종 소거.

4. 최종 결과 (Final Result)

  • 빌드 성공: esbuild 컴파일 정상 통과 (30ms 내외).
  • 패키징 완료: g1nation-2.2.15.vsix 생성 완료.
  • 안정성 확보: UI 텍스트 영문화 및 표준화를 통해 향후 인코딩 문제 재발 가능성 차단.

5. 향후 과제 (Next Steps)

  • 모듈화: 2,500라인이 넘는 extension.tsActionHandlers.ts, UIProvider.ts 등으로 분리하여 유지보수성 향상 필요.
  • i18n 도입: 한글 UI 재도입 시 직접 하드코딩 대신 별도의 JSON 언어팩 사용 권장.

PD 코다리의 한마디: "조직이 시스템이다. 엔진이 깨끗해야 비행기가 뜬다!" 😎🐟

📌 한 줄 통찰 (The Karpathy Summary)

(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)

📖 구조화된 지식 (Synthesized Content)

추출된 패턴:

(TODO)

세부 내용:

  • (TODO)

🤖 LLM 활용 힌트 (How to Use This Knowledge)

언제 이 지식을 쓰는가:

  • (TODO)

언제 쓰면 안 되는가:

  • (TODO)

🧪 검증 상태 (Validation)

  • 정보 상태: needs_review
  • 출처 신뢰도: A
  • 검토 이유: (P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)

🧬 중복 검사 (Duplicate Check)

  • 기존 유사 문서: (TODO: 인덱서 클러스터 리포트 참조)
  • 처리 방식: UPDATE (자동 정규화)
  • 처리 이유: Phase 1 정규화 — 옛 템플릿/누락 필드 보강.

⚠️ 모순 및 업데이트 (Contradictions & Updates)

  • 과거 데이터와의 충돌: 없음
  • 정책 변화: 없음

🔗 지식 연결 (Graph)

  • Parent: 10_Wiki/Topics
  • Related: (TODO: 최소 2개)
  • Opposite / Trade-off: (TODO)
  • Raw Source: 직접 입력

🕓 변경 이력 (Changelog)

날짜 변경 내용 처리 방식 신뢰도
2026-05-08 P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) UPDATE A

💻 코드 패턴 (Code Patterns)

패턴 1: (TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)

# TODO

🤔 의사결정 기준 (Decision Criteria)

선택 A를 써야 할 때:

  • (TODO)

선택 B를 써야 할 때:

  • (TODO)

기본값:

(TODO)

안티패턴 (Anti-Patterns)

  • [안티패턴]: (TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)