프로그램과 언어 — 파이썬 · 자바스크립트 · Node
이 장에서 배우는 것 프로그래밍 언어가 무엇이고 왜 여러 개인지, "런타임"이 왜 따로 필요한지, 그리고 이 매뉴얼에 나오는 Node.js · 파이썬이 각각 무슨 자리인지.
언어는 사람이 읽으려고 있는 것입니다
컴퓨터가 실제로 이해하는 것은 0과 1뿐입니다. 사람이 그걸로 일을 시킬 수는 없으니, 사람이 읽고 쓸 수 있는 문장으로 적고 그걸 기계어로 옮기는 단계를 둡니다. 그 문장의 문법이 프로그래밍 언어입니다.
보면 대충 읽힙니다. 그게 목적입니다.
언어가 여러 개인 이유
한국어와 영어처럼 잘하는 분야가 다릅니다.
| 언어 | 주로 쓰는 곳 | 이 매뉴얼에서 만나는 자리 |
|---|---|---|
| 파이썬(Python) | 데이터 분석, AI, 자동화 스크립트 | AI 예제 코드가 거의 다 파이썬입니다 |
| 자바스크립트(JavaScript) | 웹 화면, 서버 | 브라우저 안에서 도는 모든 것 |
| SQL | 데이터베이스 조회 | 데이터베이스 |
| 셸(bash) | 명령을 이어 붙이는 것 | 터미널에 치는 줄 |
AI 예제가 파이썬인 것은 관행입니다. 데이터·AI 쪽 도구가 파이썬으로 먼저 만들어졌고 그래서 예제도 파이썬으로 쓰입니다. 다른 언어로 못 하는 것이 아니라 보여주기 좋은 공용어에 가깝습니다. (내 컴퓨터를 모델 서버로의 예제가 파이썬인 이유입니다.)
런타임 — 언어를 실행해주는 프로그램
여기가 헷갈리는 지점입니다. 언어로 적은 글은 그 자체로는 안 돕니다. 읽고 실행해주는 프로그램이 따로 있어야 합니다. 그걸 런타임이라고 합니다.
graph TD
A["사람이 적은 코드<br/>app.js · script.py"] --> B["런타임<br/>Node.js · Python"]
B --> C["실제로 돌아가는 프로그램"]| 언어 | 런타임 | 확인 명령 |
|---|---|---|
| 자바스크립트 | Node.js | node --version |
| 파이썬 | Python | python3 --version |
자바스크립트는 원래 브라우저 안에서만 돌았습니다. 그것을 브라우저 밖으로 꺼내 내 컴퓨터에서 돌게 해주는 것이 Node.js 입니다. 그래서 "Node를 설치한다"는 말은 자바스크립트로 만든 프로그램을 돌릴 수 있게 한다는 뜻입니다.
그래서 HyperTeams가 Node를 요구합니다
준비물이 Node.js LTS를 깔라고 하는 이유가 이것입니다. 하이퍼팀즈(HyperTeams)가 자바스크립트로 만들어져 있어서, 그것을 실행할 런타임이 필요합니다.
LTS(Long Term Support, 장기 지원)는 "한동안 고쳐주기로 약속한 안정 버전"을 말합니다. 최신 버전은 더 새롭지만 덜 검증됐습니다. 업무용은 LTS입니다.
패키지와 버전
프로그램은 남이 만든 부품을 가져다 씁니다. 그 부품 하나가 패키지이고, 그걸 받아오는 도구를 패키지 매니저라고 합니다.
| 언어 | 패키지 매니저 | 부품이 쌓이는 곳 |
|---|---|---|
| 자바스크립트 | npm · pnpm | node_modules 폴더 |
| 파이썬 | pip | 가상환경 |
버전이 왜 늘 따라다니냐면, 부품이 바뀌면 그걸 쓰는 프로그램이 조용히
깨지기 때문입니다. v20.11.0 처럼 세 자리로 적고, 앞자리가 바뀌면 "안 맞을 수
있다"는 신호입니다.
스크립트와 앱
같은 코드라도 쓰임에 따라 이렇게 부릅니다.
| 스크립트 | 애플리케이션 | |
|---|---|---|
| 성격 | 한 번 돌고 끝 | 계속 떠 있음 |
| 예 | 파일 정리, 리포트 생성 | HyperTeams, 웹 서비스 |
| 자리 | 예약 실행에 걸어두는 것 | 켜두는 것 |
에이전트에게 "매일 아침 이걸 정리해줘"를 맡기면 대개 스크립트가 나옵니다. 그것을 예약에 거는 것이 파이프라인입니다.
자주 하는 오해
"코드를 읽을 줄 알아야 이 매뉴얼을 볼 수 있나요"
아니요. 예제는 "이렇게 생겼다"를 보이려고 넣는 것이고, 필요하면 에이전트에게 "이 코드가 무슨 일을 하는지 한국어로 설명해줘"라고 시키면 됩니다. 그게 언어 모델이 가장 잘하는 일 중 하나입니다.
"파이썬을 깔아야 하나요"
HyperTeams를 쓰는 데는 필요 없습니다. Node.js만 있으면 됩니다. 파이썬은 모델 서버 예제처럼 직접 코드를 짤 때 나옵니다.
확인
1. Node.js는 프로그래밍 언어입니까?
답
아닙니다. 언어는 자바스크립트이고, Node.js는 그것을 브라우저 밖에서 실행해주는 런타임입니다.
2. HyperTeams가 Node.js를 요구하는 이유는?
답
HyperTeams가 자바스크립트로 만들어졌기 때문입니다. 실행할 런타임이 있어야 합니다. 사용자가 자바스크립트를 알 필요는 없습니다.
3. 업무용으로 최신 버전과 LTS 중 무엇을 고릅니까?
답
LTS입니다. 한동안 고쳐주기로 약속한 안정 버전이라 업무용에 맞습니다.
여기까지가 내 컴퓨터 한 대 이야기입니다. 다음부터는 그 밖으로 나갑니다 → 네트워크와 통신