리눅스 시스템 프로그래밍 2판.

옮긴이의 말.


예전 이야기를 해볼까 한다.

그래 봤자 그리 오래되지 않은 과거에 지금의 웹, 모바일 앱 개발 열풍처럼 많은 사람이 리눅스 시스템 프로그래밍을 공부하던 시절이 있었다. 요즘 유행하는 파이썬이나 루비를 이용한 웹 프로그래밍은 아니었지만, 그 시절에도 PHP를 중심으로 한 웹 개발의 인기는 대단했고 등장하자마자 가파르게 치고 올라가던 자바의 무서운 기세도 잊을 수 없다.

날마다 해가 뜨면 새로운 코드가 쏟아졌다. 지금만큼이나 전체 개발자의 잉여력과 생산성이 최고조였던 시기다. MySQL, 파이썬, 파이어폭스 브라우저, 아파치 웹 서버, 비트토렌트, Qt 툴킷 등 지금도 널리 사용되고 있는 많은 소프트웨어가 처음 모습을 드러냈던 시기가 바로 그때였다.

돌이켜보면 이런 흐름에 불을 지폈던 건 다름 아닌 오픈소스와 리눅스였다. 당시에는 설치조차 호락호락하지 않았던 생소한 운영체제는 기업이나 연구소의 선택받은 일부만 접할 수 있었던 서버라는 꿈의 존재를 시간과 노력을 조금만 들이면 누구나 자신이 소유한 PC에서 구동할 수 있게 하는 마법과도 같은 선물이었다.

일반 PC에서 동작하는 소스코드가 공개된 커널, 자유롭게 쓸 수 있는 다양한 컴파일러, 어떤 것이라도 구현할 수 있는 잘 설계된 라이브러리, 그리고 지나치게 친절한 라이브러리 문서, 이 모든 것을 담고 있는 리눅스는 개발자에게는 종합 선물 상자와 같았다.

게다가 이 모든 소스코드는 공개되어 있으므로 자연스럽게 시스템 프로그래밍을 접할 기회가 늘었고 웹 개발과 같은 다른 개발 분야만큼이나 많은 사람이 시스템 프로그래밍을 공부했다.

하지만 시스템 프로그래밍이라는 분야 자체는 여전히 업계의 첨단 분야임에도 불구하고 웹이나 모바일 앱 개발과 비교하면 시스템 프로그래밍을 공부하려는 사람들이 과거보다 훨씬 더 적다고 느낀다. 개발 트렌드의 변화, 개인의 취향 같은 여러 가지 이유가 있겠지만, 제대로 된 관련 서적의 부재가 크다고 생각하는데, 질소 없는 과자처럼 속이 꽉 찬 이 책이 출판됨으로써 어느 정도 해소되리라 기대한다.

또한, 이 책에서 리눅스 시스템 프로그래밍 언어로 사용하고 있는 C 언어는 많은 사람이 오래된 언어, 익히기 어려운 언어라는 선입관을 가지고 있다. C 언어는 그보다 수십 년 뒤에 나온 언어에 비해 다소 투박한 면은 있지만 결코 어려운 언어는 아니다.

오래된 언어이긴 하나 아직도 현역으로 사용되고 있으며 특히 리눅스 시스템 프로그래밍 분야에서는 독보적인 존재다. 커널과 드라이버는 말할 것도 없고, 안드로이드의 핵심 코드와 최근 인기를 얻고 있는 키-밸류 저장소인 레디스(Redis)도 C로 개발되었으며, 후발주자임에도 빠르게 성장하고 있는 새로운 웹 서버인 Nginx, 그리고 MySQL, Git, 파이썬 모두 C로 작성되었다.

한 분의 독자라도 이 책을 다 읽고 나서 리눅스 시스템 프로그래밍에 흥미를 느낀다면 번역자이자 오랜 시간 리눅스 시스템 프로그래밍 광으로 지낸 한 사람으로서 큰 기쁨이 될 것이다.

리눅스 시스템 프로그래머로서 더욱 탄탄한 지식 기반을 쌓고 싶다면 부록에서 소개하는 참고 서적들도 공부하길 추천한다. 혹시나 이 책을 다 읽고 난 뒤에 무엇부터 시작해야 할지 확신이 서지 않는 독자가 있다면 주저 말고 역자에게 메일을 보내주시기 바란다.

2015년 1월 출간. 한빛미디어. (원서: Linux System Programming 2nd ed.)

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.