[서적] 전문가를 위한 C

나는 현재 방송통신대학교 컴퓨터과학 학부에 재학 중이다.
원하는 학기에 원하는 강의를 수강하고 싶은 마음에 (조금은 이상하지만) 지난 학기에 C를 배운 적 없는 상태에서 C++ 강의를 이미 수강했고,
이번 학기에 C프로그래밍 강의를 수강하고 있다.
지난 학기에 조금 고생을 해서인지, 혹은 이제 조금 경력이 쌓이다보니 주력 언어 외의 다른 언어와도 친하게 지낼 여유가 쌓인 것인지,
아니면 아직 새 학기가 시작한지 얼마 되지 않아 들은 강의가 몇 개 되지 않아서인지 재미있게 C를 공부하고 있다.

나처럼 비전공으로 소프트웨어 엔지니어가 된 사람들이라면 주변에서 ‘기초가 되는 언어는 C’ 라는 말을 많이 들어왔을 것이다.
(전공생이면 보통 엔지니어가 되기 전부터 C를 이미 학교에서 배웠을 테니까 말이다)
그래서 늘 C언어가 궁금해왔던 차에 이번 학기에 강의를 듣고 있는데 마침 한빛미디어에서도 ‘전문가를 위한 C’를 읽을 기회를 주셔서 감사히 읽었다.

이 책은 두께와 표지에서부터 이 책이 얼마나 많은 메세지를 안겨줄지 궁금해지는 책이었다.
다른 언어들을 소개하는 책처럼 그 언어의 특징과 사용법을 다루는 책일 것이라 생각했었다.
하지만 그 예상은 완전히 빗겨나갔고, 왜 C가 기초가 되는 언어인지도 어렴풋이나마 알았다.
사실 책을 온전히 꼼꼼히 읽었으면 상당 부분 알게 됐을 것 같아서 현재로써는 책이 아닌 나 자신에게 개인적으로 아쉬운 마음이 있다.
그래서 리뷰는 기한 내에 작성하더라도, 더 알고 싶은 것들로 가득한 책이어서 한동안 더 읽어보려고 한다.

예를 들어 part2에서는 프로세스와 메모리, part3에서는 객체지향을 다룬다.
왜 한 언어를 주제로 하는 책에서 프로세스와 메모리에 대해 알아야 하는지, 왜 C는 객체 지향이 아닌지에 대해 상당히 상세하게 알려준다.
또한 part4에서는 C와 밀접한 관계에 있을 수 밖에 없는 UNIX를 다룬다.
유닉스를 다루더라도 바로 시스템호출이나 커널 쪽으로 들어가는 것이 아닌 이 책에서 왜 유닉스를 다루는지에 대해 자세한 설명이 있기 때문에 더욱 흥미로웠다.
유닉스 챕터가 지나면 동시성, 동기화, 스레드 실행, 프로세스간 통신 등에 대해 다루면서 여러 번 고민했던 주제들이 등장함을 확인할 수 있다.

C언어에 대한 책을 펼쳤을 뿐인데 C언어 자체의 특징과 함께 전공서적에서 읽을 수 있는 다양한 지식들을 읽는 행복을 안겨주는 책이다.
물론 그것은 C언어가 프로그램의 기초가 되는 언어인 영향도 있기는 하지만, 무엇보다도 이 책 자체가 정말 짜임새 있게 잘 만들어졌다는 인상을 받았다.
방대한 내용을 다룸에도 그 짜임이 매우 유기적으로 잘 구성되어 있고, 번역도 매끄럽다. 그렇기에 900여 쪽에 달하는 두께가 압박만으로 다가오지는 않고,
수많은 것들이 함께 연결되어 있다는 기쁨을 줄 수 있는 책이다.
소프트웨어 엔지니어로 일하고 있는 모든 사람에게 이 책을 추천하고 싶다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


Written by
Sunmin
어제보다 나은 오늘을 만들기 위해 배우고, 기록하고, 회고합니다. Maker. Reader. Realistic optimist.