소프트웨어 · 1 min read · Dec 03, 2025
소프트웨어의 진정한 대부: 데니스 리치

인터넷은 스티브 잡스와 같은 소프트웨어 거인들에 대한 이야기와 찬사로 가득 차 있습니다. 그러나 소프트웨어의 부흥을 이끈 한 사람, 스티브 잡스와 같은 사람들이 그들의 기술 제국을 구축할 수 있도록 한 사람인 데니스 리치는 세상이 잊어버린 인물입니다. 이 이름에 익숙하지 않은 많은 이들을 위해, 그를 찬양해야 하는 이유를 소개합니다.
창조자
데니스 리치의 유산이 우리에게 그렇게 중요한 이유는, 그가 60년대 후반에서 70년대 초반에 벨 연구소에서 일하면서 어셈블리 언어의 한계를 깨달았기 때문입니다. 따라서 그는 벨 연구소의 동료 연구원인 켄 톰슨과 함께 더 나은 버전의 유닉스를 만들 수 있는 유연성을 제공하는 언어를 만들기로 결정했습니다. 이 언어는 B로 알려지게 되었으며, 이야기에 따라 톰슨의 아내 보니의 이름을 따왔거나 60년대 중반 케임브리지에서 개발된 언어인 BCPL에서 유래되었습니다.
B는 인터프리터 언어로, CPU 위에서 실행되는 중간 소프트웨어에 의해 실행되었습니다. 따라서 오늘날 우리가 아는 바와 같이, 이 언어는 C라는 컴파일 언어의 길을 열었습니다. C의 첫 번째 버전은 오늘날 우리가 아는 언어와 그리 다르지 않았습니다. 그것은 컴파일되어 기계어로 변환된 후 CPU에 의해 실행되었습니다. 그러나 그것이 만들어졌던 시점에서는 고급 언어로 간주되었고, 리치와 톰슨은 그것이 필요한 유연성을 제공하고 동시에 빠르게 유지될 것이라고 보았습니다.
“그들은 변수를 정의하기 위한 완전한 데이터 구조와 ‘타입’을 제공했습니다. 그리고 이것이 리치와 톰슨이 그들의 새로운 유닉스 커널을 구축하는 데 사용한 것입니다.”라고 10년 후 벨 연구소에 합류한 파이크는 말합니다. “그들이 작성하고자 했던 프로그램은 유닉스 커널이었습니다.”
유산
리치의 농담 중 하나는 C가 어셈블리 언어의 힘과 편리함을 가지고 있다고 말하며, C가 하드웨어에 매우 가까이 실행되기 때문에 아름다운 창조물은 아니라고 인정하는 것이었습니다. 그러나 오늘날 C는 저급 언어로 발전했지만, 그 당시에는 그들의 필요에 충분히 높은 수준이었습니다.
프로그래밍 전설이자 현재 구글러인 롭 파이크는 리치가 세상을 떠난 후 언어와 그 창조자들에 대해 이렇게 말했습니다.
“대규모 프로그램을 작성할 때 — 그리고 그것이 유닉스였습니다 — 다양한 구성 요소 간의 상호작용을 관리해야 합니다: 모든 사용자, 파일 시스템, 디스크, 프로그램 실행 등. 그리고 이를 효과적으로 관리하기 위해서는 작업 중인 정보의 좋은 표현이 필요합니다. 이것이 우리가 데이터 구조라고 부르는 것입니다.”라고 파이크는 말합니다.
“데이터 구조 없이 커널을 작성하고 유닉스만큼 일관되고 우아하게 만드는 것은 훨씬 더 어려운 도전이었을 것입니다. 그들은 모든 데이터를 함께 그룹화할 방법이 필요했으며, 포트란으로는 그것을 할 수 없었습니다. 그 당시에는 운영 체제를 작성하는 비정상적인 방법이었고, 이것이 리치와 톰슨이 결국 OS를 다른 플랫폼으로 이식할 수 있도록 상상하게 한 것입니다. 그들은 70년대 후반에 그렇게 했습니다. “그것은 유닉스가 어디서나 실행될 수 있는 길을 열었습니다.”라고 파이크는 말합니다. “모든 것은 C 덕분에 가능했습니다.”
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.