튜링상 1호 수상자의 130가지 통찰
프로그래밍을 하다 보면 가끔 「아, 이건 누가 정리 좀 해줬으면」 싶은 직관들이 있잖아요. 그런 걸 무려 1982년에 130개의 짧은 경구로 정리해둔 사람이 있어요. 앨런 펄리스(Alan Perlis)라는 컴퓨터 과학자인데요, 1966년 제1회 튜링상(컴퓨터계의 노벨상) 수상자예요. 그가 남긴 「프로그래밍에 관한 경구들(Epigrams on Programming)」은 40년이 넘은 지금 읽어도 소름 돋게 들어맞아요. 몇 개를 골라서 같이 곱씹어볼게요.
“당신의 사고방식을 바꾸지 못하는 언어는 배울 가치가 없다”
가장 유명한 경구예요. 새 언어를 배운다는 게 단순히 문법 하나 더 외우는 게 아니라는 뜻이거든요. 예를 들어 자바만 쓰다가 함수형 언어를 처음 만나면 「어? 반복문 없이 이걸 푼다고?」 하면서 머릿속 회로가 바뀌잖아요. 그런 충격을 주지 못하는 언어라면 굳이 시간 들일 필요 없다는 거예요. 요즘으로 치면 Rust의 소유권 개념이나 Go의 동시성 모델을 처음 배울 때 느끼는 그 당황스러움이 사실은 성장의 신호라는 얘기죠.
“단순함은 복잡함보다 먼저 오지 않는다. 그 뒤에 온다”
이건 진짜 경험 많은 개발자일수록 무릎을 치는 말이에요. 우리는 보통 「처음부터 깔끔하게 짜야지」 하는데, 펄리스는 정반대를 말해요. 복잡한 걸 한참 헤매고 나서야 비로소 진짜 단순한 구조가 보인다는 거예요. 그래서 처음 짠 코드가 지저분한 건 당연하고, 리팩터링이라는 과정이 그래서 필요한 거예요. 단순함은 출발점이 아니라 도착점이거든요.
“매개변수가 열 개인 함수가 있다면, 분명 몇 개를 빠뜨린 것이다”
이건 좀 유머러스하면서 뼈가 있어요. 함수에 인자(parameter)가 많아진다는 건 설계가 잘못됐다는 신호인데, 펄리스는 「그렇게 인자가 많을 거면 어차피 더 있을 텐데 왜 열 개에서 멈췄냐」고 비꼬는 거예요. 결국 「그 함수, 하나의 일만 하게 쪼개라」는 단일 책임 원칙을 농담으로 표현한 셈이에요.
“리스프 프로그래머는 모든 것의 값은 알지만 무엇 하나의 비용도 모른다”
이것도 명언이에요. 추상화가 잘 된 고급 언어(여기선 Lisp)를 쓰면 생산성은 좋지만, 내부에서 메모리를 얼마나 쓰고 연산이 얼마나 도는지는 감을 잃기 쉽다는 경고예요. 요즘으로 치면 ORM으로 편하게 쿼리 짜다가 N+1 문제로 DB가 죽는 상황, 혹은 파이썬으로 편하게 짰다가 성능 병목을 만나는 상황이랑 똑같아요. 편함의 대가를 모르면 언젠가 청구서가 날아오거든요.
왜 지금 다시 보나
재밌는 건, 이 경구들이 Lisp과 메인프레임 시절에 쓰였는데도 AI 코딩과 클라우드 시대에 더 잘 맞는다는 점이에요. 「최적화는 진화를 방해한다(Optimization hinders evolution)」 같은 말은 빠른 MVP 개발 철학과 그대로 통하고요. 기술 스택은 계속 바뀌지만, 좋은 소프트웨어를 만드는 사고의 본질은 잘 안 바뀐다는 걸 보여줘요. 비슷한 결의 고전으로는 『맨먼스 미신』이나 『실용주의 프로그래머』 같은 책이 있는데, 펄리스의 경구는 그 압축판 같은 느낌이에요.
한국 개발자에게
이런 고전은 당장 코드를 짜는 데 쓰이진 않지만, 길게 보면 「어떤 개발자가 될 것인가」에 영향을 줘요. 신입 때는 문법과 프레임워크가 전부 같지만, 연차가 쌓일수록 결국 설계 감각과 판단력이 실력을 가르거든요. 출근길에 이런 경구 하나씩 곱씹어보는 것만으로도 시야가 넓어져요. 원문은 짧은 영어 문장들이라 영어 공부 겸 읽기에도 딱 좋고요.
핵심 한 줄: 도구는 바뀌어도 좋은 사고는 남는다. 여러분이 가장 공감하는 프로그래밍 명언은 무엇인가요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공