서론
C 언어는 시스템 자원을 관리하는 운영체제 개발을 위해 만들어진 언어이다. 따라서 하드웨어를 제어하고 실행 효율을 높여야 하는 곳에 주로 쓰인다. 우리 주위에서 흔히 볼 수 있는 신호등, 자동차의 중앙 컴퓨터(CPU), 주방의 전자레인지, 스마트폰의 운영체제 등 별생각 없이 봤던 다른 장치 모두 C로 작성된 소프트웨어를 사용한다.
C는 죽은 언어라는 오해와 일부 기술 전문가들의 무시에도 불구하고, 티오베에서 확인할 수 있는 티오베 지수는 이를 반증한다. C는 자바와 함께 지난 15년간 가장 인기 있는 언어였다. 그리고 최근 몇 년 동안 인기가 더 높아지고 있다.
전문가를 위한 C
이 책은 C 언어라는 만만치 않은 주제에 Extream C 라는 원서의 제목에 맞게 C 언어의 모든 부분을 다룬다.
따라서 대상 독자 또한 C와 C++에 관해 최소한의 지식을 가진 독자를 대상으로 한다.
이 책을 시작하기 전에 잘 알고 있어야 할 주제들은 다음과 같다.
- 컴퓨터 아키텍처 지식
- 프로그래밍 기초 지식
- 터미널과 셸 명령어 사용법
- 프로그래밍 중급 지식
- 객체지향 프로그래밍 기초 지식
책은 총 7부 23개의 챕터로 구성된다. 각 부에서는 C 프로그래밍의 특정 측면을 다룬다.
1부는 C 프로그램을 작성할 때 매우 유용한 C의 특정 요소를 주로 다룬다. 구성 요소에는 전처리기 지시자, 포인터 변수, 함수 포인터, 구조체 등이 있다.
2부에서는 프로세스 내부의 메모리 및 메모리 구조를 다룬다.
3부에서는 C언어의 객체지향을 다룬다. 객체지향과 C가 무관한 듯 보일 수 있지만, C에서도 객체지향적인 코드를 작성할 수 있다. 객체지향 방식에서 문제를 설계하고 해결하는 알맞은 방식 및 가이드를 소개한다.
4부에서는 유닉스와 C의 관계, 5부에서는 동시성을, 6부에서는 프로세스 간 통신을 다루며, 마지막으로 7부에서는 테스트 및 유지 보수에 관해 다룬다.
결론
이 책은 C를 이용하는 애플리케이션의 개발과 유지 보수에 필요한 기초와 고급 지식을 모두 다룬다.
일반적으로 프로그래밍 언어의 문법만 안다고 해서 성공적인 프로그램을 작성하기란 어렵다. C는 다른 언어에 비해 이 점이 더 중요하다. 이 책에서는 대규모 소프트웨어를 C로 작성하는 데 필요한 모든 개념을 살펴본다. 간단한 단일 프로세스 프로그램부터 복잡한 멀티 프로세스 시스템에 이르기까지 말이다.
또한 C 언어 그 자체뿐만 아니라 C 언어와 컴퓨터의 역사, 객체지향, 커널, 스레드, 프로레스, 다른 언어와의 통합에 이르기까지 그야말로 여러 주제를 폭넓게 다룬다. 그만큼 C언어가 IT 기술에 미치는 영향이 방대하다는 증거이다.
필자도 현재 '전문가를 위한 파이썬'이라는 책을 보는 중인데, 책의 내용은 초보자가 보기에 당장에 이해하기도 어렵지만 실제로 적용해볼만한 코드를 작성하기도 쉽지 않다. 이 책도 마찬가지이다. C 언어를 꾸준히 사용한 지 최소한 1 ~ 2년 정도 지난 엔지니어들이 자신들이 계속 고민해왔던 부분들에 대해 생각해보면서 기반이 되는 지식과 더불어 이 책을 최대한 활용할 수 있을 것 같다.
"한빛미디어 < 나는 리뷰어다 > 활동을 위해서 책을 제공받아 작성된 서평입니다."
댓글