|
| 1 | +# [OpenClaw 연재 3회] 우리 프로젝트의 뼈대와 심장, 기초 공사 시작하기! |
| 2 | + |
| 3 | +안녕하세요! OpenClaw(오픈클로) 뒤집어보기 시리즈, 벌써 **3회**차입니다. |
| 4 | + |
| 5 | +지난 시간에는 주방에 장비를 들여놓듯 Node.js, pnpm, TypeScript를 설치해 보았죠? 오늘은 본격적으로 OpenClaw라는 거대한 건물의 **'땅을 다지고 설계도를 펼치는'** 기초 공사 단계를 함께 진행해 보겠습니다. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## 1. 프로젝트의 거대한 트렁크, '모노레포(Monorepo)' |
| 10 | + |
| 11 | +OpenClaw는 **모노레포** 구조를 선택했습니다. |
| 12 | + |
| 13 | +* **비유하자면?** 온 가족의 짐을 하나의 거대한 트렁크에 담는 것과 같습니다. 각자 작은 가방을 들고 다니면 잃어버리기 쉽지만, 하나로 묶어 관리하면 필요한 물건을 찾기도, 통째로 옮기기도 훨씬 쉬워지죠. |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +## 1-1. 환경 설정 및 워크스페이스 전략 |
| 18 | + |
| 19 | +우리는 효율적인 학습을 위해 두 개의 폴더를 활용할 것입니다. |
| 20 | + |
| 21 | +1. **`openclaw-lab` (나의 실습장)**: 우리가 직접 코드를 짜며 기능을 완성해 나가는 공간입니다. |
| 22 | +2. **`openclaw-src` (공식 참고서)**: 실제 OpenClaw 소스 코드를 담아두고 궁금할 때마다 열어보는 정답지입니다. |
| 23 | + |
| 24 | +> **[TIP] 공식 소스 코드 가져오기** |
| 25 | +> 터미널에서 `git clone https://github.com/OpenClaw/OpenClaw openclaw-src`를 입력하면 공식 소스를 내려받을 수 있습니다. |
| 26 | +
|
| 27 | +--- |
| 28 | + |
| 29 | +## 1-2. OpenClaw의 뼈대 해부 (src 구조) |
| 30 | + |
| 31 | +`openclaw-src/src` 폴더는 OpenClaw의 모든 마법이 일어나는 핵심입니다. |
| 32 | + |
| 33 | +* **`gateway/`**: 🧠 [중추 신경망] 모든 메시지의 수신 및 배달을 결정하는 심장입니다. |
| 34 | +* **`channels/`**: 🔌 [통신 포트] 디스코드, 슬랙 등 외부 서비스와 연결되는 통로입니다. |
| 35 | +* **`agents/`**: 🤖 [AI 두뇌] 서버에 지능을 부여하고 대화를 처리합니다. |
| 36 | +* **`infra/`**: 🧱 [기초 설비] DB, Redis 등 바닥 기초를 담당합니다. |
| 37 | +* **`types/`**: 📏 [표준 규격] 전체 데이터의 약속(Interface)이 모여있습니다. |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## 2. 프로젝트의 정체성 (package.json & tsconfig.json) |
| 42 | + |
| 43 | +### 📄 package.json: 출생 신고서 |
| 44 | +이 프로젝트의 이름, 버전, 필요한 도구 목록을 정의합니다. 컴퓨터에게 "나는 그냥 폴더가 아니라 프로그램이야!"라고 선언하는 서류입니다. |
| 45 | + |
| 46 | +### 📄 tsconfig.json: 통역사의 가이드북 |
| 47 | +TypeScript를 JavaScript로 번역해주는 '정밀 조각 지침서'입니다. |
| 48 | + |
| 49 | +* **핵심 3조항**: |
| 50 | + 1. `target: ES2022`: 최신 언어 스타일 사용 |
| 51 | + 2. `module: NodeNext`: 최신 통신 규약 준수 |
| 52 | + 3. `strict: true`: 엄격한 법 집행으로 버그 사전 차단 |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## 3. ☁️ [중요] GitHub 가이드: 온라인 금고 분양받기 |
| 57 | + |
| 58 | +공사 내용을 안전하게 지키기 위해 전 세계 개발자들의 공용 금고인 **GitHub**를 사용해야 합니다. |
| 59 | + |
| 60 | +### 3-1. 회원 가입 및 저장소 생성 |
| 61 | +1. **가입**: [github.com](https://github.com)에서 **Sign up**을 진행하세요. 멋진 닉네임을 만드는 것이 첫걸음입니다! |
| 62 | +2. **저장소 생성**: 로그인 후 **New repository**를 클릭합니다. 이름은 `openclaw-lab`으로 고르고 **Create repository**를 누르세요. |
| 63 | + |
| 64 | +### 3-2. 내 컴퓨터와 연결하기 |
| 65 | +저장소를 만들면 보이는 주소를 터미널에 등록해야 합니다. |
| 66 | +```bash |
| 67 | +git remote add origin https://github.com/본인아이디/openclaw-lab.git |
| 68 | +``` |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +## 4. 🚀 [실습] 나의 첫 기초공사 버전 기록하기 |
| 73 | + |
| 74 | +이제 설계도(`tsconfig.json`)까지 완료된 상태를 안전하게 저장해 봅시다. |
| 75 | + |
| 76 | +### 📸 버전 관리의 3단계 |
| 77 | +1. **재료 담기 (Add)**: 바뀐 파일들을 장바구니에 담습니다. |
| 78 | + ```bash |
| 79 | + git add . |
| 80 | + ``` |
| 81 | +2. **기록하기 (Commit)**: "기초 공사 완료"라는 메시지와 함께 스냅샷을 찍습니다. |
| 82 | + ```bash |
| 83 | + git commit -m "feat: 기초 공사 및 설계도 완료" |
| 84 | + ``` |
| 85 | +3. **전송하기 (Push)**: 온라인 금고(GitHub)로 내 기록을 보냅니다. |
| 86 | + ```bash |
| 87 | + git push origin main |
| 88 | + ``` |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +## 마무리하며 |
| 93 | + |
| 94 | +축하합니다! 이제 OpenClaw를 짓기 위한 튼튼한 땅도 다졌고, 온라인 금고까지 확보했습니다. |
| 95 | + |
| 96 | +다음 연재에서는 드디어 이 튼튼한 기반 위에 **진짜 소문 무성한 'AI 게이트웨이'의 심장**을 하나씩 박아보겠습니다. 고생하셨습니다! 😊 |
| 97 | + |
| 98 | +#OpenClaw #오픈소스 #개발일기 #TypeScript #NodeJS #GitHub #초보개발자 |
0 commit comments