오늘 끝나면
코드는 어떻게 실행되나
- ✓코드는 어떻게 실행되나의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 코드는이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
내가 쓴 글자가 동작이 되기까지 — 컴파일 vs 인터프리터 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
개발 · Day 7
코드는 어떻게
실행되나
내가 쓴 글자는 사람 글임. CPU는 0과 1만 앎. 그 사이를 메우는 게 번역임.
둘은 서로 다른 언어
price = 1000 이건 사람이 읽으라고 쓴 글임.
근데 CPU는 글자를 못 읽음. 아는 거라곤 켜짐·꺼짐, 즉 0과 1뿐임.
그래서 내 코드는 그대로는 한 글자도 못 돎. 누군가 0과 1로 바꿔줘야 비로소 돎.
그 “바꿔주는 일”을 번역이라 부름. 번역 방식이 두 갈래로 갈림.
같은 뜻, 전혀 다른 표기 — 그 사이를 번역이 메움
미리 통째 vs 그때그때
번역하는 타이밍이 두 방식을 가름.
컴파일은 실행 전에 4줄 통째로 미리 번역해 둠. 처음엔 기다림. 대신 그 뒤 실행은 이미 0/1이라 쭉쭉 빠름.
인터프리터는 기다림 없이 바로 시작함. 대신 줄마다 그때그때 번역해서 매 줄이 느림.
탭을 바꿔가며 걸린 시간이 어떻게 달라지는지 봄.
번역이 끼는 위치
소스코드에서 실행까지, 길이 두 갈래임.
컴파일러는 .c 파일을 통째로 씹어 실행파일(이미 0/1 덩어리)을 한 번 만들어 둠. 그 다음부턴 그 파일만 돎.
인터프리터는 실행파일을 안 만듦. .py 파일을 들고 다니며 돌릴 때마다 한 줄씩 읽고 바로 실행함.
그래서 C는 “먼저 빌드”, 파이썬은 “그냥 실행”인 거임.
속도냐 편함이냐
공짜 점심은 없음. 둘은 맞바꾸는 관계임.
컴파일(C)은 빠름. 미리 다 번역해 뒀으니 실행이 군더더기 없음. 대신 고칠 때마다 다시 빌드해야 해서 번거로움.
인터프리터(파이썬)는 편함. 고치고 바로 돌려보면 됨. 대신 매번 번역하느라 더 느림.
그래서 빠른 게 생명이면 C, 빨리빨리 만들고 고치는 게 중요하면 파이썬을 고름. 옳고 그름이 아니라 골라 쓰는 것임.
코드 보기 — 같은 일, 두 언어
// C — 먼저 빌드해야 돎
int total = price * qty;
printf("%d", total);
# 파이썬 — 그냥 바로 돎
total = price * qty
print(total)