|
94 | 94 | | 구분 | 기술 / 도구 | 버전 (권장) | 선정 이유 (Why?) | |
95 | 95 | | :--- | :--- | :--- | :--- | |
96 | 96 | | **Runtime** | **Node.js** | >=22.12.0 | 최신 LTS. 비동기 I/O 처리가 핵심인 게이트웨이 서버에 최적화됨. | |
97 | | -| **Language** | **TypeScript** | ^5.9.3 | 거대한 모노레포 프로젝트의 타입 안정성 보장. 인터페이스 기반 설계 필수. | |
| 97 | +| **Language** | **TypeScript** | ^5.9.3 | 거대한 모노레포 프로젝트의 타입 안정성을 보장하는 엄격한 문법 검사기. 인터페이스 기반 설계 필수. | |
98 | 98 | | **Package Manager** | **pnpm** | 10.23.0 | 모노레포 구조에서 디스크 공간 절약 및 빠른 설치 속도. | |
99 | 99 | | **Server Core** | **Hono** (+ WS) | 4.11.4 | Express보다 가볍고 빠르며, Edge Runtime 호환성이 좋음. HTTP/WebSocket 통합 용이. | |
100 | 100 | | **Channel Layer** | **Baileys** | 7.0.0-rc.9 | WhatsApp Web API를 리버스 엔지니어링한 라이브러리. 브라우저 없이 Node.js에서 WhatsApp 구동 가능. | |
|
145 | 145 | ``` |
146 | 146 |
|
147 | 147 | #### 2. Language & Framework (설계 도구) |
148 | | -* **TypeScript**: 엄격한 문법 검사기. (감리사) |
| 148 | +* **TypeScript**: 거대한 모노레포 프로젝트의 타입 안정성을 보장하는 엄격한 문법 검사기. (감리사) |
149 | 149 | * **설치법**: 프로젝트마다 로컬로 설치하는 것이 정석입니다. |
150 | 150 | ```bash |
151 | 151 | pnpm add -D typescript |
152 | 152 | ``` |
| 153 | + * **은유 (Metaphor)**: **"철저한 설계도 감리사"**. 건물을 짓기 전 설계도가 법규에 맞는지, 자재가 규격품인지 꼼꼼히 체크하여 나중에 건물이 무너지는 대형 사고를 막아줍니다. |
153 | 154 |
|
154 | 155 | * **Hono**: 초고속 웹 프레임워크. (건물 뼈대) |
155 | 156 | * **설치법**: 프로젝트 시작 후 설치. |
|
307 | 308 | > * **비동기(Asynchronous = Non-Blocking)**: 웨이터가 주문을 받다가 손님이 고민하면 **"결정되시면 벨 눌러주세요"** 하고 **다른 테이블로 가서 일을 합니다.** 그러다 벨이 울리면(이벤트 발생) 다시 와서 주문을 받습니다. |
308 | 309 | > |
309 | 310 | > **Why?**: OpenClaw 게이트웨이는 수천 명의 사용자가 동시에 메시지를 보냅니다. 한 명 메시지 처리하느라 다른 사람들을 기다리게 하면 안 되겠죠? 그래서 Node.js의 비동기 방식이 필수입니다. |
310 | | -2. **pnpm 설치**: `npm install -g pnpm@10.23.0`. |
| 311 | +2. **Language: TypeScript (^5.9.3)**: |
| 312 | + * **설명**: TypeScript(타입스크립트)는 거대한 모노레포(Monorepo, 단일 저장소) 프로젝트의 타입 안정성을 보장하는 엄격한 문법 검사기입니다. 인터페이스 기반 설계가 필수적인 대규모 프로젝트에서 타입 오류를 사전에 방지합니다. |
| 313 | + * **설치 방법**: 윈도우/맥 공통 터미널에서 아래 명령어를 입력하세요. |
| 314 | + ```bash |
| 315 | + npm install -g typescript |
| 316 | + # 설치 확인 |
| 317 | + tsc -v |
| 318 | + ``` |
| 319 | + * **은유 (Metaphor)**: **"철저한 설계도 감리사"**. |
| 320 | + * 일반 자바스크립트가 "일단 건물을 짓고 나중에 무너지면 고치자"는 식이라면, 타입스크립트는 **"벽돌 하나를 쌓을 때마다 설계도(Type)와 일치하는지 확인"** 합니다. 조금 귀찮을 수 있지만, 나중에 건물이 무너지는(런타임 에러) 대형 사고를 99% 막아줍니다. |
| 321 | + * **실사용 예제 (Concept Class)**: |
| 322 | + * **자바스크립트 (무책임)**: `[사과] + 100 = "사과100"` (이상하지만 에러 없이 진행됨) |
| 323 | + * **타입스크립트 (책임감)**: **"잠깐! 과일(String)에 숫자(Number)를 더하다니요? 말도 안 됩니다!"** 하고 빨간 줄을 쫙 그어줍니다. |
| 324 | +
|
| 325 | + --- |
| 326 | +
|
| 327 | +3. **pnpm 설치**: `npm install -g pnpm@10.23.0`. |
311 | 328 |
|
312 | 329 | --- |
313 | 330 | |
|
355 | 372 | |
356 | 373 | --- |
357 | 374 |
|
358 | | -3. **프로젝트 생성 (집터 닦기)**: |
| 375 | +4. **프로젝트 생성 (집터 닦기)**: |
359 | 376 |
|
360 | 377 | 1. 먼저 컴퓨터 하드디스크(C드라이브 혹은 홈 디렉토리)에 `Workspace`라는 이름의 폴더를 만드세요. |
361 | 378 | 2. 그 `Workspace` 폴더 안에 들어가서, 다시 `openclaw-lab`이라는 새 폴더를 만듭니다. |
|
436 | 453 |
|
437 | 454 | --- |
438 | 455 |
|
439 | | -4. **TypeScript 설정 (`tsconfig.json`) - 아키텍처 심층 분석**: |
| 456 | +5. **TypeScript 설정 (`tsconfig.json`) - 아키텍처 심층 분석**: |
440 | 457 |
|
441 | 458 | 이 설정 파일은 프로젝트의 **"법전(宪法)"**과 같습니다. 단순한 설정이 아니라, 이 프로젝트가 **모던 자바스크립트 생태계(ESM)** 에서 어떻게 살아남을지를 정의합니다. |
442 | 459 |
|
|
0 commit comments