2023년에 C언어가 가지는 의미는 무엇일까? C언어는 절차적 프로그래밍 언어의 맹주인 1972년생 프로그래밍 언어이지만, 객체지향을 넘어 함수형 프로그래밍이라는 패러다임이 몰아치는 현 시기에 C언어는 어떤 가치와 지향을 가지고 개발자들에게 다가설 수 있을까? 물론 나야 C/C++계열의 언어를 가장 좋아하고 있지만, 이제는 다른 신생 모던(Modern) 언어들이 제공하는 문제인식 개념이나 편의성을 C언어는 어떻게 풀어내려고 접근하고 있을까? 하는 궁금점을 가지고 모던 C언어를 살펴보기 위해 이 책을 골랐다.

 이 책의 제목은 '전문가를 위한C'라고 번역되었고, 두께가 무려 900여 페이지에 달할 만큼 위압감을 주는 책이다.  원서의 제목은 "Extream C"이다.  C언어 역시 짝꿍 C++와 함께 발전을 거듭해왔다. C언어는 1989년 ANSI C 스펙이 확정된 이후에도 C95, 99, 11, 18을 넘어 23까지 발전을 해오고 있지만, 그닥 개발자 그룹의 많은 관심을 받지는 못했다.  전문가들이 보아야할 책으로 생각할수도 있겠지만, 이 책을 80% 정도 읽은 시점에서 나는 초급을 벗어난, 고급 개발자가 되고 싶은 컴파일러 방식의 언어 중급 개발자들에게 큰 도움이 될 수 있는 책이라 본다. 단순히 C언어 문법을 익히고자 한다면 이 책은 그 답이 아닐 가능성이 높다.

 

이 책은 크게 7부로 나뉘어진다.

1부와 2부는 컴파일러 언어인 C를 중심으로 어떻게 컴파일러가 실행파일을 만들어 가는지, 실행파일은 기본적으로 어떻게 동작하는지를 설명한다. 특히 4장 에서는 C코드가 목적파일을 거쳐 실행파일까지 변환되는 과정속에서 메모리/데이터가 어떤 식으로 펼쳐지는지를 소개한다.왜 스택과 힙이 있는지를 잘 설명하고 있고, 각 메모리 세그먼트의 역할과 분석 방법을 통해 C코드의 동작원리를 설명한다. 윈도우가 아니라 맥/리눅스를 중심으로 소개하는데에서 한때 윈도우 프로그래밍하면 C였던 시대가 아련하게 느껴졌다.

3부에서는 재미있게도 C언어이지만 객체지향이라는 개념을 다룬다. 사실 C언어에서도 객체지향이 가능하다. 다만 조금 불편할 뿐이지.. 저자는 OOP를 언어의 특징이 아니라 "문제를 생각하고 분석하는 방식"(P.254)으로 설명하면서 C와 C++의 관계까지 소개하고 있다.

4부에서는 유닉스를 소개하면서 커널와 사용자 모드에 대해 설명한다. 다시한번 윈도우에서 길을 잃은 C언어의 모습이 느껴져 시대의 변화가 느껴지기도 한다. 하지만 C가 여전히 임베디드 시장이나 게임엔진, 하드코어 영역에서 중요한 역할을 맡고 있구나 하는 생각도 든다.

5부와 6부는 모든 언어에서 화두가 되는 동시성/병렬성과 프로세스간 통신의 방법을 소개한다. 꽤 많은 분량을 할애하여 쓰레드 동기화 및 IPC, 소켓 통신을 다룬다. 다만 언어 설명서와 같이 아주 상세하게 다루지는 않는다.

7부는 테스트와 빌드시스템 이야기인데, 소프트웨어의 유지 보수 이야기라면 모듈 패키지 관리 솔루션인  vcpkgconan에 대한 설명까지 곁들여졌으면 더 좋을 것 같다.

 

이 책은 전체적으로 초/중급 개발자(초년~5년차) 정도의 개발자들이 개발의 경험을 바탕으로 지식을 좀 더 깊게 만들때 도움이 될만한 책이라 생각한다. 단순히 C언어 책으로 인식되기엔 아깝고, 컴파일러 언어를 사용하는 개발자라면 한번씩 읽으면서 C가 만들어내는 방식을 이해해 보는 것도 유용하리라 생각한다. 윈도우 프로그래밍과 관련해서는 다른 책을 더 읽어야 한다. 이 책은 그런 내용을 다루지는 않는다.

일본에서 만들어진 C언어 캐릭터

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

반응형

우리가 사랑한 한국 PC게임

이 책이 처음 기획되고, 텀블벅 펀딩 프로젝트가 진행된다는 소식을 접했을 때 '아~ 재미있는 역사의 기록서가 나오는구나'라는 정도로 생각했다.후원해야지 생각하다가 일상생활속에 깜빡했는데, 펀딩이 무사히 완료되었고, 일반 버전까지 출간되었다(얼마전 2쇄도 찍은 모양이다.축하축하!)

 

요근래 우리나라가 만든 문화 콘텐츠가 전세계적으로 많은 사랑을 받고 있지만, 그 출발은 K-Game과 K-Pop일 것이다. 나도 게임업계에서 근무중이긴 하지만 머리속에 떠오르는 게임은 어느새 온라인 게임들뿐이었다. 나도 80~90년대 컴퓨터 게임과 함께 학창시절을 보냈지만, 우리나라에서 만든 게임이 있었나 할 정도로 기억이 잘 나지 않았다.그 시절을 함께 했던 게임을 떠올리면 울티마, 고인돌, 로드러너 같은 외국 게임들이었다.

 

이 책을 받고 나서 몇 페이지를 넘기는 사이, 나는 시간을 거슬러 학원, 친구집에서 함께 월간지를 보며 게임을 즐기던 시절로 돌아가 있었다. 이제는 책에 소개된 게임들을 실행해보려면 에뮬레이터를 통할 수 밖에 없지만, 아프로만, 동서게임 채널 같은 유통사부터 미리내소프트, 막고야 같은 개발사들의 발자취를 되짚어보는 것도 의미가 있다.

고급진 하드커버와 미술작품같은 도록

책은 크게 세 부분으로 나뉘어진다.

년도순으로 정리된 게임별 실행 정보, 유통사, 가격 같은 기본 정보와 게임의 스크린샷, 그리고 그 게임에 얽힌 소개 기사들이 1부이며, 2부에는 소개된 게임박스의 도록(박스게임의 앞면과 뒷면)으로 구성되어 있다. 여기에 감초같은 인터뷰 꼭지들이 3부이다. 한국 게임산업을 이끌어온 레전드 분들의 삶의 한켠을 옅볼 수 있는 인터뷰들이다. 게임에 대한 정보를 정리한, 일종의 사서로써도 이 책의 가치는 충분한데, 한국 게임산업을 일으켜 세우고 발전시킨 분들이 나눠주는 이야기에서 만감들이 교차한다. 이 내용만으로도 이 책의 소장가치는 충분하다. 90년대 게임을 좋아했던 분들이라면 소장각!

 

 

 

 

게임은 병이 아니라 문화의 일부

K-Contents중에서 경쟁력을 인정 받은 게임 분야의 기록이 이제 발걸음을 딛었다. 온라인 PC게임 시장이 열리면서 패키지형 게임들이 많이 사라졌고, 또한 그 사이에 모바일로 플랫폼이 전환되면서 여러 게임들이 피고 졌다. 이러한 한국게임의 계보에 대한 기록도 잘 남았으면 좋겠다.(패키지는 그래도 물리적인 상자라도 남아있는데, 온라인 게임들은 어떻게 그 역사가 보관되어야 할까?)

아직 우리나라 사회는 게임에 대해 부정적인 인식이 많다. 천편일률적인 장르와 마케팅, 부분유료화 등의 비판에서 자유로울 수 없겠지만,  이 책을 통해 우리나라  게임 개발자들이 이렇게 다양한 장르와 개성 넘치는 시도들을 했었구나 하는 생각이 들었다. 오성과 한음, 서태지부터 낚시광, 머털도사, 컴온베이비 등등.. 

 

텀블벅 펀딩과 일반 보급을 위해 출간 결정을 내려준 한빛 미디어에 독자의 1인으로 고마움을 전한다. 이 책을 학습하듯이 읽지는 않겠지만 책꽂이에 두고 계속해서 예전 게임을 좋아했던 1인 플레이어로써의 추억이 떠오를때마다 펼치게 될 것 같다.

 

저자 중 한분인 오영욱님의 NDC 강연<한국게임의 역사> 동영상: http://ndc.vod.nexoncdn.co.kr/NDC2013/videos/NDC2013_0080.mp4

 

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

 

 

반응형

+ Recent posts