코드 실행의 흐름 — 소스코드→빌드→실행
소스코드가 실행되기까지의 과정 — 컴파일 vs 인터프리터, Node.js와 Python의 실행 방식.
Claude Code가 만든 코드를 '실행'하라고 하면, 정확히 무슨 일이 일어나는 걸까? 컴파일이 뭐고 인터프리터가 뭔지 모르면, 에러 메시지조차 읽을 수 없다.
코드는 결국 사람이 쓴 텍스트 파일입니다. 컴퓨터는 텍스트를 직접 이해하지 못합니다. 컴퓨터가 이해하는 건 0과 1뿐이죠. 그래서 소스코드를 컴퓨터가 실행할 수 있는 형태로 번역하는 과정이 반드시 필요합니다. 이 번역 방식이 크게 두 가지로 나뉩니다: 컴파일(Compile)과 인터프리트(Interpret).
| 구분 | 컴파일 방식 | 인터프리터 방식 |
|---|---|---|
| 번역 시점 | 실행 전에 전체를 한 번에 번역 | 실행하면서 한 줄씩 번역 |
| 비유 | 책 전체를 번역한 뒤 출판 | 동시통역사가 실시간 통역 |
| 대표 언어 | C, C++, Go, Rust | Python, JavaScript, Ruby |
| 장점 | 실행 속도가 빠름 | 수정 후 바로 실행 가능 |
| 단점 | 컴파일 시간이 필요 | 실행 속도가 상대적으로 느림 |
바이브코더가 가장 많이 만나는 두 언어의 실행 방식을 알아봅시다. Python — 인터프리터 방식입니다. `python app.py`를 입력하면 파이썬 인터프리터가 코드를 한 줄씩 읽으면서 바로 실행합니다. 수정하고 바로 돌려볼 수 있어서 초보자와 프로토타이핑에 최적입니다. Node.js (JavaScript) — 역시 인터프리터 방식이지만 V8 엔진이 내부적으로 JIT(Just-In-Time) 컴파일을 수행해 속도를 끌어올립니다. `node server.js`로 실행합니다.
# Python 실행 — 인터프리터가 한 줄씩 실행
python app.py
# Node.js 실행 — V8 엔진이 JIT 컴파일 후 실행
node server.js
# TypeScript — 먼저 JavaScript로 변환(트랜스파일) 후 실행
npx tsc && node dist/index.js
# Next.js — 개발 서버 (내부적으로 빌드+실행 동시 진행)
npm run dev바이브코더가 자주 쓰는 실행 명령어들. TypeScript는 직접 실행이 안 되므로 JavaScript로 변환하는 단계가 추가된다.
빌드(Build)란 소스코드를 배포 가능한 형태로 만드는 전체 과정입니다. 컴파일, 번들링(여러 파일을 하나로 합치기), 최적화(코드 압축) 등이 포함됩니다. `npm run build`가 대표적인 빌드 명령어입니다. Claude Code에게 "빌드해줘"라고 하면, 이 전체 과정을 자동으로 수행합니다. 에러가 나면 어느 단계에서 실패했는지 파악하는 것이 핵심입니다.
핵심 정리: 소스코드(텍스트) → 번역(컴파일 또는 인터프리트) → 실행(CPU가 처리). 바이브코더는 이 흐름을 이해해야 에러 메시지를 읽고, Claude Code에게 정확한 지시를 내릴 수 있습니다.
Python은 컴파일 언어이다.
소스코드를 배포 가능한 형태로 만드는 전체 과정을 무엇이라 하는가?