todayon***
2023-03-25

실제 애플리케이션 개발과 유지 보수에 필요한 C의 기초 개념과 활용법, 고급 기능까지 살펴보는 C 중고급서. C와 유닉스의 역사부터 객체지향, 커널, 스레드, 프로세스, 다른 언어와 통합하는 법까지 폭넓은 주제를 다룬다.
해당 책은 C와 C++ 개발에 관해 최소한의 지식을 가진 독자를 위해 썼습니다. 주니어와 중급 엔지니어가 주요 독자인데, 이 정도 지식이라면 이 책을 최대한 활용할 수 있다고 이야기를 해주고 있습니다. 각 부에서는 C 프로그래미의 특정 측면에 대해 이야기를 하는데, 1부에서는 C 프로젝트 빌드 방법, 2부에서는 메모리, 3부에서는 객체지향에 초점을 맞춰 설명을 해줍니다.
이후 4부에서는 유닉스와 C의 관계에 대해 살펴보고, 5부에서는 동시성, 6부에서는 프로세스 간 통신을 다루며, 마지막으로 7부에서는 테스트 및 유지 보수에 대해 다룹니다. 지금까지 보시면 알겠지만, 사실 C 언어에 대하여 최소한의 지식의 조건이 과연 이 정도 수준일까? 싶을 정도로 높게 잡혀있다고 개인적으로 생각이 듭니다.
컴퓨터 아키텍처 지식 및 프로그래밍 기초 지식, 터미널과 셸 명령어 사용법, 프로그래밍 중급 지식, 마지막으로 객체 지향 프로그래밍 기초 지식 까지에 대해 알고 있어야 이 책을 읽을 수 있다고 이야기를 합니다. 그렇다보니 갓 C언어 기초를 떼신 분들일지라도 현업자가 아닐 경우 책을 대하기에 조금 어려울 수 있겠다고 느껴졌습니다.
특히 간단한 문법에 대해 다루는 것이 아닌 프로젝트 빌드 방법부터 접근하여, 전처리기 활용 방법이나 OOP 등 기초 책에서는 잘 다루지 않는 내용에 대해 자주 언급되고 있습니다. 영문 책 제목이 Extreme C 라고 하는데, 확실히 책의 깊이나 두께에서 C언어를 극한으로 다루길 원하시는 분들을 위한 책이라고 느껴졌습니다.
결론은, 임베디드 분야 등 C언어를 활용하여 실용적인 측면으로 다룰 줄 아시는 분들이 읽으신다면 재미있게 읽으시겠지만, C언어를 한번 마친 후 접근하시려는 분들께는 꽤 어려운 벽이 될 수 있겠단 생각이 듭니다. 그만큼 타겟층이 명확하기 때문에, C언어 자체에 대해 배우기 보다는 C를 주로 활용하는 시스템 프로그래밍 책이라고 이해하시는 편이 좋겠습니다.