행복한 프로그래밍: 컴퓨터 프로그래밍 미학 오디세이
책의 제목에 ‘프로그래밍’이라는 말이 들어가면 사람들은 대개 기술적이거나 전문적인 내용을 다루는 책을 떠올리기 마련이다. 하지만 ‘행복한 프로그래밍’이라는 제목에서 중점을 둔 부분은 ‘프로그래밍’이라는 명사가 아니라 ‘행복한’이라는 형용사이다. 다시 말해서 이 책은 특정한 기술이나 전공 지식을 담고 있는 책이 아니라 컴퓨터 프로그래밍 속에 들어 있는 미학(美學)을 전달하고자 하는 ‘소프트’한 이야기를 담고 있는 책이다.
이론과 실제는 너무나 다르다. 학생일 때는 새로운 기술을 적용한 심오한 프로그래밍 또는 어려운 알고리즘을 구현한 프로그래밍 말로 진짜 그럴듯한 뭔가 라고 생각했었는데 막상 회사에서는 실수가 바로 돈과 연결되는 프로그래밍을 하다 보니 학생 시절에 가졌던 많은 생각들이 깨지는 건 나만의 생각만은 아닐 것이리라.
JSP를 사용하여 DB를 사용자가 원하는 대로 화면에 뿌려주고 비즈니스 로직에 따라 조인된 DB정보를 INSERT, UPDATE, DELETE 하는 것이 나의 일 전부라고 생각했고 슬슬 프로그래밍이라는 것에 대해 흥미를 잃어가기 시작했다. SQL문 속에 포함된 JOIN 기능이 코딩으로 구현했을 경우 몇 십배 불어 난다는 사실을 알았을 때 SQL문의 경이로움 보다는 코딩이 말 그대로 노가다 임을 느껴서 일까?
이런 생각을 가지고 있던 중 “행복한 프로그래밍” 이라는 책을 읽게 되었다. 정말 손에서 놓을 수 없었지만 업무시간이라는 이유 때문에 두 번의 출퇴근 시간을 이용하여 읽은 너무나 공감하면서 느낀 부분이 많은 책이었다.
Chapter 1. 아침 7시 카페오레
책 머리에 카페오레란 에스프레소와 같은 진한 커피를 마시는 유럽 사람들이 아침에 위의 부담을 줄이기 위해서 커피에 우유를 타서 먹는다는 뜻이라고 나와있다. 이와 같이 약간은 부드럽게 프로그래밍 세계를 여행하기 전에 몇 가지 수수께끼를 펼쳐 놓으면서 문제를 하나 하나 해결해 나갔던 학생 때의 기분을 맛보며 나도 아직은 머리가 녹슬지 않았다라는 생각을 하며 프로그래머가 느끼는 성취감을 다시 한번 느낄 수가 있었다. Chapter 마지막 부분들은 전산인들이라면 최소한 한번씩은 구현해본 알고리즘이 나와있다. 무척 반가울 것이다! 피보나치, 최단경로 찾기, 단어 뒤집기 이름만 들어도 친근하지 않은가?
Chapter 2. 오전 10시 에스프레스 젤라틴
책 전체에 걸쳐 많은 얘기들이 나온다. 한번쯤을 들어봤을 법한 사람들과 그들의 뒷 이야기들은 이책은 영화, 그림, 삽화를 곁들여 흥미 진진하게 보여준다. 인류 최초의 버그를 보고 싶은가? 그렇다면 이책에서 사진과 인류 최초의 버그라는 글 “Fist actual case of bug being found” 을 볼 수 있다. 이책을 더욱 가볍게 볼 수 있었던 것은 상식 이야기를 접할 수 있었던 것이었다.
Chapter 3. 오후 1시 카페 에스프레스
오후 1시는 직장인들에게 가장 괴로운 시간일 것이다. 점심 식사를 마치고 그 나른함이란… 이제 졸음을 이기기 위해 좀더 진한 향의 느낌 에스프레소로 시작하고 있다. 그래서 인지 약간은 조금 생각해야 할 내용들 즉, 여행자 알고리즘, 해킹에 관한 내용들, 이책에서 처음 보았지만 신기해 했던 콘 웨이의 인생게임, 사이버 머니 알고리즘등이 존재한다. 그리고 친절하게 참고 문헌과 URL까지 제공하고 있다. 궁금하면 방문할 수 있도록 말이다.
Chapter 4. 오후 4시 카페 그린
카페 그린이란 커피는 처음 들어 보았다. 녹차와 커피처럼 왠지 어울리지 않고 별개의 단편 느낌이 든다. 그래서 인지 이장에서는 저자의 약간의 개인적인 이야기와 최근에 벌어진 인터넷 대란(DNS 서버 공격)과 전설의 해커, 케빈 미트닉에 대해 얘기하고 있다.
녹색의 포근한 표지로 시작한 소설책 느낌의 이책은 마지막 장도 연두색 종이로 끝나버렸다. 이책을 통해 다시 한번 프로그래머로서의 행복을 느낄 수 있었다. 비전산인 보다는 전산을 전공한 분들에게 이책을 권하고 싶다. 마지막으로 책을 읽으면 읽을수록 프로그래밍에 담긴 맛을 음미할 수 있는 시간을 갖게 되는 것 같다.