|
C 언어는 오래된 언어 중의 하나입니다. 최신 언어들의 추세인 다양한 라이브러리, 패키지 매니저 같은 것들은 지원되지 않습니다. 그래도 문법의 단순함과 시스템의 이해를 높이기 위한 언어로 학부에선 필수 과목이었으나 그마저도 지금은 아닌 것처럼 보입니다. 그렇지만 C 언어는 TIOBE 프로그래밍 언어 순위에서는 1, 2위를 다투는 여전히 시장에서 많이 쓰이고 있는 언어입니다. 그 이유는 C 언어가 가지는 장점 때문이라고 생각합니다.
C 언어의 장점은 명확합니다. 메모리를 직접 컨트롤 할 수 있기 때문에 GC를 가진 언어보다 빠르고, 컴파일 언어이기 때문에 인턴 프린터 언어들보다 빠르다는 것입니다. 이러한 언어의 특성으로 인해 메모리를 직접 다뤄야 하는 임베디드 영역이나, 고성능이 필요한 업체에서는 여전히 C 언어가 쓰이고 있습니다. 위에서 이야기한 것 처럼 메모리를 직접 접근이 가능하다보니 다루는 사람에 따라 운영체제도 만들 수 있지만, 잘못 사용하면 시스템을 망가뜨리는 프로그램을 만들 수도 있습니다. 단순한 언어이지만 그래서 더 잘 쓸 줄 알아야 합니다.
모던 C는 그런 부분을 잘 설명하고 있는 책입니다. 언어를 이해하기 쉽게 0~3단계의 레벨로 나누어 볼 수 있게 작성되어 있습니다. 기존에 C 언어를 배워 본적이 있는 분들은 "레벨 0 만남"과 "레벨1 친숙"은 아마 너무 쉽게 느껴지실 수도 있습니다, 하지만 각 단원 사이 등장하는 연습문제와 도전 문제의 경우는 이미 C 언어에 친숙한 사람들도 생각해 봐야 할 문제들로 구성되어 있어 도움이 됩니다. 만약 내가 C 언어를 처음 배우는 사람이라면 구성만 따라가도 이해하기 어렵지 않게 되어 있습니다.
이 책의 본격적인 부분은 레벨 2부터입니다. 새로 배우는 분도, 이미 알고 있는 분들도 레벨 2부터는 주의 깊게 읽어봐야 할 부분들로 구성되어 있습니다. C 언어의 코딩 스타일부터 시작하여, 메모리 모델과 동시성 모델까지, 실제 C 언어를 개발하면서 가장 어려운 부분일 수 있는 메모리 누수와 레이스 컨디션, 동기화 문제 그리고 최적화 같은 심도 있는 부분들까지 배울 수 있습니다.
C++가 3년 주기로 표준이 변화하듯 C 언어도 계속 표준이 변하고 있습니다. 모던 C 책은 그런 최신 표준에 관한 내용을 담고 있으며, 예전 C 언어 표준에 머물러 있는 분이시라면 최신 C 언어의 트렌드를 확인해 볼 수 있는 좋은 책이라고 생각합니다. 한 권쯤 책장에 두고 필요할 때 꺼내 볼 수 있는 레퍼런스 같은 책으로 추천해 드립니다. |
|
이 책은 카테고리가 크게 4단계로 되어있는데요, 기본적인 C에 대한 내용을 다루는 '만남' 그리고 다음 레벨인 '친숙', '이해', '숙달' 순으로 이어집니다. 첫 카테고리 파트인 '만남'에서는 주로 C언어의 기본적인 문법과 프로그래밍 구조에 대하여 설명해줍니다. 그리고 #include, int, void, for, return과 같은 특수어에 대한 설명과 더불어 컴파일러 관점에서의 식별자 해석 방식도 곁들여 줍니다. 그리고 다음 레벨인 '친숙'에서는 좀 더 들어가 C언어의 데이터 타입, 제어문 함수 사용법에 대한 설명이 들어갑니다. 흔히 알고 있는 기본적인 데이터 타입 외에도 파생 타입들에 대한 상세한 설명들과 더불어 타입별 관계도에 대해서도 상세히 설명해주고 있습니다. '이해' 단계에서는 포인터에 대한 설명을 비롯하여 메모리, 스토리지 구조 등 좀 더 심화적인 내용들을 다루게 되는데요 특히나 C언어를 시작할때 모두가 어려움을 겪게 되는 포인터 파트에서는 배열을 포함하여 다양한 예시들의 비교를 통하여 보다 알기 쉽게 설명해주고 있습니다. 특히나 스토리지 파트에서는 동적할당에 해당하는 내용들로서 malloc, calloc, realloc 등과 같은 함수들에 대한 각각의 설명이 들어 있습니다. 평상시에 자세하게 알지 못했던 동적할당에 해당하는 내용들에 대하여 비교적인 관점에서 자세하게 알 수 있었습니다. 마지막으로 '숙달' 파트에서는 말 그대로 성능의 측면에서의 다양한 제어흐름이라던가 스레드 등과 같은 영역에 대해 설명해 줍니다. 스레드 설명 부분에 대해서는 스레드 동작 원리들을 그림을 통하여 설명해주고 있을 뿐만 아니라 실제 예시들을 통하여 스레드 원리에 대하여 순차적으로 하나씩 설명이 잘 되어 있습니다. 전체적으로 C언어를 사용함에 있어서의 간결한 요약본 느낌이었고 실전에서 사용하기 편하게 알차게 준비되어 있는 듯 합니다. |
|
책에 있는 예제는 깃허브 예제 일부분만 잘라온 것이라 보고 실습하기 어려웠습니다. 코드 일부분만 나와있기에 실습을 할 수가 없었습니다. 게다가 예제가 들어있는 깃허브 링크를 타고 들어가도 깃허브 정리가 중구난방으로 되어있어서 원하는 예제를 제대로 찾기 힘들었습니다. 게다가 책에 있는 설명도 불친절해 실망이었습니다. |