Files
2nd/10_Wiki/Topic_Business/Digests/Topic_Programming--Language.md
T
Antigravity Agent 9148c358d0 docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
2026-07-05 00:33:48 +09:00

3.9 KiB

type, title, generated_at, sources
type title generated_at sources
digest 소화 노트: Topic_Programming/Language 2026-06-22T18:00:36.586Z
에러_처리와_커스텀_에러
모듈_시스템과_프로젝트_구성
비동기_프로그래밍_Promise_async_await
TypeScript_고급_타입

소화 노트: Topic_Programming/Language

⚙️ 자동 생성 (sleep-time 사전 소화) — 원문이 항상 우선입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다.

예상 질문과 답

  • Q: 에러 발생 시 시스템의 본 흐름을 유지하기 위해 어떤 전략을 사용하나요? — A: 부가 기능(메모리 추출, 텔레메이트리 등)의 실패는 catch {}를 통해 의도적으로 삼키고, 이를 통해 "Graceful degradation"을 구현하여 본 흐름이 깨지지 않도록 합니다. [에러 처리와 커스텀 에러]
  • Q: 비동기 작업 중 사용자가 'Stop'을 눌렀을 때 어떻게 중단시키나요? — A: AbortSignalAbortController를 사용하여 외부에서 비동기 작업을 취소할 수 있는 표준 메커니즘을 활용합니다. 특히 타임아웃과 사용자 취소를 결합하여 즉각적인 중단을 구현합니다. [비동기 프로그래밍 Promise async await]
  • Q: 모듈 시스템에서 named export를 주로 사용하는 이유는 무엇인가요? — A: 자동완성, 일관된 이름 유지, 리팩터링의 안전성을 확보하기 위해서입니다. ConnectAI는 default export를 사실상 배제하고 이 방식을 채택합니다. [모듈 시스템과 프로젝트 구성]
  • Q: TypeScript에서 런타임 검증을 컴파일 타입 좁히기로 연결하는 방법은? — A: x is T 형태의 '타입 가드'를 사용하여, 함수 내에서 런타임 검증이 성공하면 컴파일러가 해당 타입을 특정 타입으로 인식하도록(Type Narrowing) 만듭니다. [TypeScript 고급 타입]
  • Q: 에러 클래스를 설계할 때 어떤 정보를 포함해야 하나요? — A: Error를 상속받아 도메인별로 분기하며, 경로, 엔진, 상태 코드와 같은 추가적인 컨텍스트(Context)를 담아 잡는 쪽에서 실패 원인을 명확히 알 수 있게 합니다. [에러 처리와 커스텀 에러]

핵심 사실

  • 에러 처리: Error 상속 계층을 통해 instanceof로 분기하며, 기술적 에러를 사용자 행동 지침(title/message/action)으로 번역하는 프로세스를 갖춤. [에름 처리와 커스텀 에러]
  • 모듈 구조: 308개의 파일을 esbuild 단일 번들로 통합하며, barrel(index.ts)을 통해 외부 진입점을 단일화함. [모듈 시스템과 프로젝트 구성]
  • 비동기 제어: Promise.race를 이용해 '작업 vs 타임아웃' 경쟁 구조를 만들고, 큐(Queue)를 통해 동시 실행 수를 CPU 코어 수에 맞춰 제한함. [비异步 프로그래밍 Promise async await]
  • 타입 안전성: 판별 유니온(Discriminated union)을 사용하여 결과값의 성공/실패({ ok: true } | { ok: false })를 명확히 분기 처리함. [TypeScript 고급 타입]

문서 간 연결

  • 공통 주제 (Robustness & Reliability): 모든 문서는 단순히 기능을 구현하는 것을 넘어, 에러를 예측하고(에러 처리), 취소 가능한 비동기를 만들며(비동기), 타입을 통해 런타임 오류를 방지하는(TypeScript 고급 타입) 등 **'견고한 소프트웨어 설계'**라는 공통된 지향점을 공유합니다.
  • 상호 작용:
    • 에러 처리 + TypeScript: 에러 클래스의 구조와 판별 유니온을 이용한 결과값 분기 처리는 서로 연결되어 안정적인 예외 처리를 완성합니다.
    • 모듈 시스템 + 비동기: 모듈의 dynamic import는 비동기 프로그래밍의 await 패턴과 결합하여 초기 로딩 속도를 최적화하는 데 사용됩니다.