처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.07.06 38

컴파일러를 직접 만들어보고 싶다면 — 무료 교재 'Introduction to Compilers and Language Design'

Hacker News 원문 보기

컴파일러, 언젠가 한 번은 궁금해지는 그것

프로그래밍을 하다 보면 이런 궁금증이 스멀스멀 올라와요. "내가 쓴 이 코드가 어떻게 컴퓨터가 알아듣는 언어로 바뀌는 거지?" C나 자바, 파이썬으로 코드를 짜면 그 텍스트가 어느 순간 실행되잖아요. 그 중간에서 우리 코드를 기계어로 번역해주는 프로그램이 바로 컴파일러예요. Douglas Thain 교수(미국 노터데임 대학)가 쓴 이 책은, 그 컴파일러를 밑바닥부터 직접 만들어보게 안내하는 무료 교재예요. PDF로 전부 공개돼 있고요.

이게 특별한 이유는, 컴파일러라는 주제가 원래 대학 전공 수업에서도 가장 어렵기로 소문난 과목이라는 데 있어요. 그런데 이 책은 그 벽을 낮춰서, 실제로 동작하는 작은 컴파일러 하나를 처음부터 끝까지 완성하도록 이끌어줘요. 이론만 늘어놓는 게 아니라 "이 단계에서는 이런 코드를 짜세요" 하고 손을 잡아주는 식이죠.

컴파일러는 공장의 컨베이어벨트예요

컴파일러가 일하는 방식을 쉽게 비유하면, 여러 단계를 거치는 공장 컨베이어벨트 같아요. 이 책도 그 단계를 하나씩 따라가요.

첫 번째 단계는 '스캐너(scanner)' 또는 '렉서(lexer)'라고 불러요. 이게 뭐냐면, 우리가 쓴 코드 문자열을 의미 있는 조각으로 쪼개는 일이에요. 예를 들어 x = 10 + 20이라는 코드를 보면 사람은 한눈에 이해하지만, 컴퓨터한테는 그냥 글자의 나열이거든요. 스캐너는 이걸 'x라는 변수', '= 대입 기호', '10이라는 숫자'처럼 토큰(token)이라는 단위로 잘라줘요. 마치 문장을 단어 단위로 끊어 읽는 것과 같아요.

두 번째는 '파서(parser)'예요. 잘라놓은 토큰들이 문법에 맞게 배열됐는지 확인하고, 그걸 트리 구조로 정리해요. 이 트리를 'AST(추상 구문 트리)'라고 부르는데, 코드의 뼈대를 나무 모양으로 표현한 거예요. 10 + 20이라면 '+'가 부모가 되고 '10'과 '20'이 자식이 되는 식이죠. 이렇게 트리로 만들어두면 컴퓨터가 계산 순서를 정확히 따질 수 있어요.

세 번째는 '타입 검사(type checking)'예요. 숫자에 문자열을 더하려고 한다든가 하는, 말이 안 되는 조합을 잡아내는 단계죠. 그리고 마지막이 '코드 생성(code generation)'인데, 여기서 드디어 그 트리를 실제 기계어나 어셈블리로 번역해요. 이 책은 이 전 과정을 C 언어와 비슷한 작은 언어를 대상으로 처음부터 짜보게 만들어요.

다른 컴파일러 책들과 뭐가 다를까

컴파일러 교재의 고전으로는 흔히 '용책(Dragon Book)'이라 불리는 두꺼운 책이 유명해요. 근데 이 책은 이론이 워낙 깊고 방대해서, 혼자 공부하다 중간에 포기하는 사람이 정말 많아요. 반면 Thain 교수의 이 책은 분량이 훨씬 가볍고, "일단 돌아가는 걸 만들어보자"는 실전 위주로 흘러가요. 최신 흐름을 봐도 요즘은 이런 '얇고 실습 중심'인 컴파일러 자료가 힘을 얻고 있어요. 완벽한 이론보다 손으로 만들어보면서 이해하는 방식이 학습에 더 효과적이라는 공감대가 생긴 거죠. Crafting Interpreters 같은 책도 같은 결이고요.

한국 개발자에게 주는 시사점

"나는 컴파일러 만들 일 없는데 이걸 왜 배워"라고 생각할 수 있어요. 근데 컴파일러 지식은 생각보다 실무에 넓게 퍼져 있어요. 설정 파일 문법을 파싱한다거나, 회사 내부용 간단한 DSL(특정 목적에 맞춘 미니 언어)을 만든다거나, SQL 쿼리를 분석한다거나, 코드 자동완성 도구를 손본다거나 할 때 전부 스캐너와 파서의 개념이 그대로 쓰여요. 정규식으로 무언가를 파싱하다가 한계에 부딪혀본 분이라면, 이 책이 그 답답함을 풀어줄 거예요.

무엇보다 컴파일러를 한 번 만들어보면 프로그래밍 언어를 보는 눈이 완전히 달라져요. "이 문법은 왜 이렇게 생겼을까", "이 에러 메시지는 어느 단계에서 나오는 걸까"가 보이기 시작하거든요. 무료라서 부담도 없으니, 방학이나 연말 같은 시간 여유 있을 때 챕터 하나씩 따라가며 나만의 작은 언어를 만들어보는 걸 추천해요.

정리하면, 이 책은 "가장 어렵다는 컴파일러를 실습으로 끝까지 완주하게 해주는 친절한 무료 교재"예요. 여러분은 코드가 실행되기까지 그 속에서 무슨 일이 벌어지는지, 얼마나 들여다본 적 있으세요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.