qor***
2022-10-30

실제 애플리케이션 개발과 유지 보수에 필요한 C의 기초 개념과 활용법, 고급 기능까지 살펴보는 C 중고급서. C와 유닉스의 역사부터 객체지향, 커널, 스레드, 프로세스, 다른 언어와 통합하는 법까지 폭넓은 주제를 다룬다.
책 마지막 장에찍힌 페이지 번호는 912. 거의 천 페이지에 이르는 아주 두꺼운 책이다. 원서의 제목은 “Extreme C”. 이를 번역한 우리말 책 제목은“전문가를 위한 C”로 다소 순화된 자세를 취하고 있지만, 책의 두께와 검은 색의 디자인만으로도 매우 강렬한 첫인상의 책이다.
C 언어가 얼마나 인기있고, 많이 쓰이는지는 다른 책에 대한 리뷰에서도TIOBE Index를 이용하여 언급한 바가 있다. C 언어의역사에 대해 이야기를 할 때면, 1972년도와 유닉스를 언급하게 된다.처음 C 언어가 세상에 나온지도 벌써 50년이넘었고, C 언어 이후로 Java, C# 등 다양한 언어가만들어졌음에도 여전히 활발하게 사용되고 있는 것을 보면 놀라움을 금치 않을 수 없다. 컴퓨터의 운영체제를보다 쉽게 만들기 위해 만들어졌던 언어였던만큼 메모리 등 하드웨어를 다루는 강력한 방법을 가진 C는일반적인 어플리케이션 뿐만 아니라 임베디드 시스템에서는 거의 필수적으로 사용되고 있다.
“전문가를 위한 C” 는 이렇듯 널리 사용되고 있는 C에 대한 폭넓은 지식을 다루고 있다. 단순히 C 언어의 문법과 사용법/예제를 나열하는 것이 아니라, C 언어가 동작하는 방식에 많은 부분을 할애하고, 객체지향, 유닉스 운영체제, 동시성, 프로세스간 통신까지 C 언어를 제대로 이해하고 원하는 대로 사용하기 위한 필수 지식들을 망라하고 있다.
이 책은 크게7개의 파트로 구성되어 있다. 1부에서는 전처리 및 지시자, 변수와 함수 포인터, 함수 호출 메커니즘 등 C언어의 필수 요소와 함께 소스 코드에서 이진 파일을 만드는 방법, 목적파일과 그 종류에 대해서 다루고 있다. 2부는 메모리에 대한 내용으로,프로세스 메모리의 레이아웃을 설명하며, 스택과 힙 세그먼트를 자세히 다룬다. 3부의 주제는 객체지향으로, 객체지향의 특징/속성 및 C 언어 및 C++ 언어로객체지향을 구현하는 방법을 소개한다. 4부는 유닉스의 역사와 아키텍처,시스템 호출과 커널에 대해 다루며 최신의 C 표준인 C18에대해 알아본다. 5부에서는 동시성의 개념을 살펴보고, 동시환경 및 인터리빙, 동기화, 스레드 실행, 스레드 동기화에 대해 다룬다. 프로세스 간 통신에 대해 다루는 6부에서는 프로세스 실행 방법, 동기화, 싱글 호스트 IPC와 소켓 프로그래밍을 소개하며, 마지막 7부에서는 테스트와 디버깅 방법, 빌드 시스템에 대해 설명하고 있다.
이 책은 C 언어를 사용하는 주니어 개발자 뿐만 아니라 개발 경력이 많은 시니어 개발자에게도 유용할 것으로 생각된다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."