|
거두절미하고, 이 책에 대해 평하기 전에 현 시점에 C언어를 공부하는 것이 의미가 있는가를 얘기해 보고자 합니다. Java 언어를 필두로 더 이상 메모리에 직접 접근하고, OS나 기기 자체의 기능을 사용하는 일은 프로그래밍 언어 단에서는 할 일이 없어지고 있고, 애당초 개발자가 C 언어를 직접 사용할 만한 일이 없는 게 사실이니까요. C 언어를 쓸 일이 없는데 C 언어 책이라니? 이 책의 내용이 어떻든, 훌륭하던 별로 던 간에 이 부분은 먼저 짚어볼 만해 보입니다. |
|
이 책은 '전문가를 위한 C'로 출간되었지만, 사실 전문가가 되기 위한, 더 나은 C 개발자가 되기 위한 책이다. 본인도 C언어로 15년 이상 개발했지만, 국내에서 중급자를 위한 적합한 C언어 책을 구하기가 힘들었는데, 오랜만에 정말 재미있게 읽은 책이다.
전체 890페이지나 되어 읽기 전부터 살짝 부담되었으며, 그리고 읽는 중간에도 다소 힘들었지만, 다 읽고 난 지금은 아주 아쉽고 다음 책의 내용이 기대된다. 기존의 가지고 있던 지식이 정리되면서, 새로운 지식에 대한 갈증을 해결해 주었고, 다음에 나아갈 길까지 제시해주는 책이라고나 할까?
C언어를 윈도우 기반으로 시작했거나, 유닉스나 리눅스에 경험이 없으면, 관련 책을 먼저 읽기 시작하면 더욱더 효과적이겠다. 시중의 C언어 기초 책과 중복되는 내용이 거의 없음에도 890페이지나 된다. ^^;;
책의 구성은 7개 PART, 전체 23개 챕터로 되어 있다. PART I(C 프로젝트를 빌드하는 방법)에서는 필수 요소, 소스 코드에서 이진 파일로, 목적 파일 PART II(메모리) 프로세스 메모리 구조, 스택과 힙 PART III(객체지향) OOP와 캡슐화, 합성과 집합, 상속과 다형성, 추상화와 C++의 OOP PART IV(유닉스) 유닉스의 역사와 아키텍처, 시스템 호출과 커널, 최신 C PART V(동시성) 동시성, 동기화, 스레드 실행, 스레드 동기화 PART VI(프로세스 간 통신) 프로세스 실행, 프로세스 동기화, 싱글 호스트 IPC와 소켓, 소켓 프로그래밍, 다른 언어와의 통합 PART VII(테스트와 유지보수) 유닛 테스트와 디버깅, 빌드 시스템
각 챕터는 먼저 이번 챕터에서 설명할 내용을 요약하고, 이전 챕터와 관련이 있으면 이전 챕터의 내용을 간략하게 설명한다. 본격적으로 개념을 설명하고 덧붙여 관련 예제와 실행 결과를 박스 형태로 보여 준다. 예제는 읽거나 코딩하기에 부담스럽지 않으며, 중간중간 NOTE 형태로 부연 설명을 이어간다. 챕터의 마지막은 챕터에서 설명한 내용을 정리하고 다음 챕터에 대한 소개로 마무리한다.
개인적으로는 번역도 깔끔하고, 책의 구성도 지루하지 않으며 이해하기 쉬웠다. 각 파트 모두가 훌륭하고 버릴 것이 없었다. PART I에서의 프로젝트 빌드 과정과 PART II에서의 메모리 활용 방법, 특히 PART III에서 객체지향으로 프로그래밍하는 방법이 참신했으며, PART IV에서 유닉스와 C의 연관성, 영원히 C언어가 사라지지 않을 이유, 최신 C, PART V에서는 최근 개인적인 관심의 동시성 프로그래밍(스레드, 멀티 프로세스), PART VI에서 프로세스와 IPCInter Process Communication, PART VII TDD 지원, 디버깅, 빌드 시스템 등
올해 읽은 책중에서 베스트이며, 인생 책이 되지 않을까 하는 생각이 들 만큼 재미가 있었으며 만족한 책이었고, C언어는 영원히 죽지 않으며, 발전할 수밖에 없는 이유를 찾은 책이다.
책을 읽으면서 가장 마음에 드는 문구로 이번 리뷰를 마무리하고자 한다. 개인적으로는 자신감이 많이 늘었으며, 저자의 다음 책이 무척이나 기대되기 때문이다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |
|
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부는 테스트와 빌드시스템 이야기인데, 소프트웨어의 유지 보수 이야기라면 모듈 패키지 관리 솔루션인 vcpkg나 conan에 대한 설명까지 곁들여졌으면 더 좋을 것 같다.
이 책은 전체적으로 초/중급 개발자(초년~5년차) 정도의 개발자들이 개발의 경험을 바탕으로 지식을 좀 더 깊게 만들때 도움이 될만한 책이라 생각한다. 단순히 C언어 책으로 인식되기엔 아깝고, 컴파일러 언어를 사용하는 개발자라면 한번씩 읽으면서 C가 만들어내는 방식을 이해해 보는 것도 유용하리라 생각한다. 윈도우 프로그래밍과 관련해서는 다른 책을 더 읽어야 한다. 이 책은 그런 내용을 다루지는 않는다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |
|
※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 장점
단점 1. 없음 후기
|
![]() 전문가를 위한 C
캄란아미니 (Kamran Amini) 지음 박지윤 옮김
이번에 소개할 책은 "전문가를 위한 C" 라는 책 입니다. 책 제목에서와 같이 C 언어에 대한 기초 책은 아닙니다. 책에서도, 대상 독자를 C/C++ 개발에 관해 최소한의 지식을 가진 독자를 대상으로 하고 있습니다. C/C++ 주니어와 중급 엔지니어가 주요 독자라고 되어 있지만, C/C++에 대한 기본 문법을 알고 소스를 읽을 수 있다면 이 책을 보는데 크게 무리는 없을 것으로 생각됩니다.
이 책은, 총 7개의 부에 23개의 장으로 구성되어 있습니다. 책은 C 언어에 대한 기초 문법에 대한 내용은 없지만, 1부 에서 C 언어의 필수 요소에 대한 설명 부터 코드에 대한 빌드 및 빌드된 결과물에 대한 설명을 해주고 있습니다. 1부, 1장 에서는 "전처리기, 포인터, 함수, 함수 포인터, 구조체"에 대해서 다루고 있습니다. 이미 개발을 하고 있거나 C 언어 문법에 대해서 자세히 알고 있더라도 정독해보면 "아~, 이런게 있었지", "아~, 이 부분은 조심해야되는데...." 등의 느낌이 들수 있는 익숙함에서 간과히 했던 부분들이 다시금 되세김질 하기에 좋은 내용으로 구성되어 있습니다. 실제, 구현 중에 실수하기 쉬운 부분들일 수도 있는 내용들이라 생각되기에 한번 읽어보면 좋을 내용들입니다. 2장 3장 에서는 컴퓨터 구조나 컴파일러 수업 시간에 들었을 내용입니다. 실제, 코딩하고 개발하는 과정에서 그렇게 생각하지 않고 지나갈만한 부분이긴 하지만 컴파일 환경을 구성하거나 컴파일 오류 또는 디버깅시에 알면 도움이 될 내용들로 구성되어 있습니다. 특히 임베디드 소프트웨어 개발을 한다면 더더욱 알면 도움될 내용이라는 생각이 듭니다. 2부, 메모리 .... 4 ~ 5장으로 2 개의 장을 통해서 메모리 구조에 대해서 설명하고 있습니다. 소프트웨어 개발 중에서 가장 중요한 부분중에 하나라고 생각합니다. 많은 오류가 발생할 수 있는 부분이며, 더버깅 하기 까다로운 부분중에 하나 입니다. 책에 메모리 구조에 대한 학습에 대해 정말 와닿는 표현이 있었습니다. ![]() 정말 많이 공감되는 표현 입니다. 메모리 구조를 파악하고 이해하는 부분에서 프로그래밍 및 디버깅 레벨의 단계가 올라가고 예술의 경지에 이르는데 필히 학습해야할 부분이라 생각합니다. 그리고, 소프트웨어를 설계하는 단계에서 기본적인 최적화를 고려하여 설계할 수 있고 그를 기반으로 코딩할 경우에도 실수를 줄이는데 많은 도움이 될 것입니다. 3부는 객체지향에 대해 설명 하고 있습니다. 6 ~ 9장으로 총 4개의 장으로 구성되어 있습니다. 실제, 객체 지향에 대한 개론적인 설명이나 C++ 문법에 대한 설명을 다룬다기 보다, 책에서도 나타내듯이 ![]() C 처럼 객체지향적이지 않은 언어로 객체 지향에 대해 설명하고 C 언어를 통한 객체지향 형태로 개발 가능성에 대해 보여주는 색다른 내용들로 구성되어 있습니다. 실제 책에서도 명시하듯이 C 자체가 객체 지향이라는 의미가 아니라, 구조를 구성하는 방식에서 객체 지향적 사고 방식을 보여주고 있습니다. C 로 개발한 코드를 한단계 업그레이드 하기 위해 꼭 학습하면 좋은 내용들 입니다. C 언어에서의 캡슐화와 정보 은닉등은 정독하면 많은 도움이 될 것 같습니다. C 언어에서 상속의 개념을 적용할 수 있는 방법에 대해서도 재미있는 장이었습니다. 4부는 유닉스 및 리눅스 커널 그리고 최신 C 표준에 대해 소개하고 설명하고 있습니다. 10 ~ 12장으로 총 3개이 장으로 구성되어 있습니다. 실제 유닉스 및 리눅스 시스템이나 커널 그리고 드라이브 등에 대해서는 유닉스 시스템 관련 책이나 시스템 프로그래밍 관련책 또는 리눅스 커널 개발 관련 책을 통해서 더 자세히 학습할 수 있습니다. 이 책에서는 10 ~ 11장을 통해서 유닉스 및 리눅스 기반에서 시스템 프로그래밍을 할 경우에 필히 알아야할 내용들에 대해서 설명하고 있습니다. 12장에서는 C언어 표준에 대한 설명과 최신 표준에서의 변화에 대해 간략하게 설명과 예제 코드를 보여주고 있습니다. 4부는 이 책과 함께 실제 시스템 프로그래밍 또는 리눅스 커널 책을 병행해서 보면 좋을 것 같습니다. 5 ~ 6 부는 C 프로그래밍 응용파트 입니다. 13 ~ 20장에서는 동시성, 동기화, 스레드 실행 및 스레드 동기화, 프로세스 실행 및 프로세스 동기화, 네트워크 (IPC, 소켓통신) 에 대해 주로 다루고 있으며, 21장에서는 다른 언어와의 통합에 대해서 다루고 있습니다. "C++, 자바, 파이썬, Go" 각각의 언어와의 통합에 대해서 예제와 함께 설명하고 있습니다. 7부는 테스트와 유지보수에 대해 다루고 있습니다. 22 ~ 23장으로 총 2개의 장으로 구성되어 있습니다. 22장에서는 유닛 테스트 소개 및 방법 그리고 C 프로그램에서 문제 해결을 위해 사용할 수 있는 디버깅 도구 및 기술에 대해서 설명하고 있습니다. 23장에서는 Makefile 같은 빌드 시스템에 대해서 소개하고 있습니다. Makefile 이외에 닌자, 바젤 빌드 시스템에 대해서도 소개하고 있습니다. 이 책에서는 기본적인 구조 및 소개 수준에서의 구문을 설명하고 있습니다. 그렇게 때문에 작성 방법 및 구문등에 대해 자세한 부분은 각각에 대한 별도 학습 자료 또는 책을 통하여 학습하여야 합니다.
[ 결론 ] 각 파트 및 섹션 마다 이해하기 쉽도록 구성되어 있으며, 각각에 맞게 그리고 적재 적소에 필요한 예제들을 넣어서 실제 실행 해보면서 이해를 돕고 있습니다. 그리고, 실제 소프트웨어 개발 진행 중에 간과히 할 수 있는 부분들에 대해서도 한번 더 생각 해 볼 수 있게 해줍니다. 이 책은 기초 또는 기본 문법 책은 아닙니다. 그리고, C 언어 바이블로서의 의미를 가질 수 있는 책은 아니라 생각 됩니다. 이 책은, C 언어를 이용한 개발의 레벨을 업그레이드 하고 C 언어 고급 엔지니어에 다가갈 수 있는 기반을 마련해 줄 수 있는 책이라 생각 됩니다.
|
|
업무상 C 언어를 다루다 보니 좀더 실무적이고 고급지식을 책으로 접할 수 있다면 하는 바램이 있었는데 이참에 목적에 딱 알맞은 책을 리뷰를 해볼 기회를 가지게 되었다. C 언어책은 학교 다닐때 따로 구입한 영문책 이후 학습을 위해 구한 것은 오랜만 인 것 같다. 제대로된 프로그래밍을 하려고 한다면 시스템 측면에서의 지식과 학습 그리고 응용이 필요하다고 하는데, 이에 관련된 내용을 모두 담고 있는 것이 이책이다. C의 모든 것이라기 보다, C를 위한 모든 것이 담겨진 책이라고 이해할 수 있다. C 언어에서 객체를 논하는 것을 보게 되다니..! 모든 컴퓨터 OS 의 시작점과 다를바 없는 유닉스 환경에서의 작업을 진행하니 유닉스의 사용법과 시스템에 대하여 학습 내용도 포함되어 있다. 책이 거의 천페이지에 달하는데 그 이유를 알 수 있다. 한줄 한줄 읽으면 오래전 학교에서 배운 운영체제 시간에 배운 용어들이 스쳐지나간다. 오래되어 잊은 자들을 위해서 이렇게 친절한 책은 따로 없지 않을 까 싶다. 더 필요한 내용이 있다면 우리에겐 chat-GPT가 있으니 물으러 달려가 보자!. 책 내부의 코드들은 아래 깃헙에서 모두 제공하고 있으므로 참고하면 귀찮은 타이핑으로 부터 해방된다. 필요한 내용 뿐만 아니라 이론을 다시 리마인드 하는(라고 하고 그냥 새로 배우는) 마음으로 책을 한자 한자 보기를 추천한다. |
|
이 책은 두께와 표지에서부터 이 책이 얼마나 많은 메세지를 안겨줄지 궁금해지는 책이었다. 다른 언어들을 소개하는 책처럼 그 언어의 특징과 사용법을 다루는 책일 것이라 생각했었다. 하지만 그 예상은 완전히 빗겨나갔고, 왜 C가 기초가 되는 언어인지 알았다. 예를 들어 part2에서는 프로세스와 메모리, part3에서는 객체지향을 다룬다. 왜 한 언어를 주제로 하는 책에서 프로세스와 메모리에 대해 알아야 하는지, 왜 C는 객체 지향이 아닌지에 대해 상당히 상세하게 알려준다. 또한 part4에서는 C와 밀접한 관계에 있을 수 밖에 없는 UNIX를 다룬다. 유닉스를 다루더라도 바로 시스템호출이나 커널 쪽으로 들어가는 것이 아닌 이 책에서 왜 유닉스를 다루는지에 대해 자세한 설명이 있기 때문에 더욱 흥미로웠다. 유닉스 챕터가 지나면 동시성, 동기화, 스레드 실행, 프로세스간 통신 등에 대해 다루면서 여러 번 고민했던 주제들이 등장함을 확인할 수 있다 C언어에 대한 책을 펼쳤을 뿐인데 C언어 자체의 특징과 함께 전공서적에서 읽을 수 있는 다양한 지식들을 읽는 행복을 안겨주는 책이다. 물론 그것은 C언어가 프로그램의 기초가 되는 언어인 영향도 있기는 하지만, 무엇보다도 이 책 자체가 정말 짜임새 있게 잘 만들어졌다는 인상을 받았다. 방대한 내용을 다룸에도 그 짜임이 매우 유기적으로 잘 구성되어 있고, 번역도 매끄럽다. 그렇기에 900여 쪽에 달하는 두께가 압박만으로 다가오지는 않고, 수많은 것들이 함께 연결되어 있다는 기쁨을 줄 수 있는 책이다. |
|
개발에 있어서 기본은 무엇보다 중요합니다. 기본이 흔들리거나 없다면 정말 정말 큰 프로젝트를 할 경우에 무너지는 건 한순간입니다. 아주 사소하지만 중요한 포인트를 놓쳐서 일을 그르치는 경우를 많이 봤습니다. '전문가를 위한 C'란 책을 읽으면서 마음 한편으로 기본이 항상 중요하단 생각이 문득문득 드네요.
C는 시스템 프로그래밍과 임베디드 시스템 등 다양한 분야에서 사용되는 프로그래밍 언어입니다. 지금은 다들 자바, 자바스크립트, 코틀린 등 여러 현대 언어들을 쓰지만 그 모든 것들의 할아버지 격인 언어인 C는 아직도 현업에서 쌩쌩하게 사용되고 있는 정말 최장수 언어이기도 합니다. 기본적인 C 학습에는 다음과 같은 부분들을 공부하는게 기본이 됩니다.
그 외에도 책에 정말 많은 내용들이 나와있어서 필요할 때마다 찾아보기 참 좋은 책이네요. 물론 텍스트와 두꺼운 분량은 가볍게 소설처럼 읽기에는 무리가 있지만요. |
|
항상 프로그래밍 언어와 관련된 책을 리뷰할 때면 TIOBE Index를 인용해오곤 하는데, 현재 시점에서 C는 Python에 이어 2위에 위치해있다. C는 1972년 Dennis Ritchie가 만들었고, 올해는 언어가 태어난지 만 50년이 되는 시점이다. 물론 최근에는 뭔가 다방면으로 활용할 수 있는 언어들이 인기를 얻고 많이 사용되고 있지만, 그 중에서도 시스템 어플리케이션이나 low level programming에서는 여전히 C가 많이 사용되고 있다. 사실 이 이야기를 꺼낸 이유는 이 책을 단순히 C와 관련된 언어책이라고 처음 생각했기 때문에 그런것이다. 그래서 막연한 생각에 여타 시중에 나와있는 C 책들과 같이 C에 대한 문법, 알고리즘 구현, 조금 고급진 내용을 다룬다면 C로 만든 프로그래밍 구현 정도가 담긴 책이라고 생각했었다. 그런데 책에 담겨 있는 내용은 그렇지 않다.
이 책은 간단하게 말하자면 C 에 대해서 알수 있는 책이라기 보다는 C를 주로 활용하는 시스템 프로그래밍 책이라고 표현하는게 맞다. 그래서 책 서두부터 간단한 문법에 대한 내용이 아니라, C로 만든 프로젝트의 빌드방법부터 소개한다. 아마 다른 C로 구현된 오픈소스 코드를 보면 헤더나 소스에 막 복잡하게 정의되어 있는 전처리기 같은 것은 활용 방법과 빌드와 관련된 내용이 처음부터 소개되는 것이다. 이밖에도 C로 이뤄지는 Object Oriented Programming이나 Concurrency, IPC 같은 기초 책에서는 찾기 어려운 주제들로 내용이 구성되고 있다. 서두에서도 저자는 C를 활용한 다양한 프로젝트에서 겪은 극한의 주제에 대한 경험적 지식을 실용적으로 접근할 수 있다는 의미로 "Extreme C"라는 책이름을 지었다고 소개되어 있고, 사실 어떻게 보면 이책을 통해서 C로 할 수 있는 모든 내용이 거진 담겨져 있다. Unix를 다루는 부분에서는 조금더 실무적으로 시스템 프로그래밍을 어떻게 하는지에 대한 내용이 잘 담겨져 있다. 개인 여담을 좀 소개하자면, 이전에 블로그에 Xenomai 라고 하는 Custom kernel을 설치하는 방법에 대해서 소개했었는데, 그걸보고 연락주신 분이 안된다고 해서, 나도 처음부터 리눅스 커널을 빌드하고, 간단하게 모듈들을 수정하는 작업을 거쳤었다. 그런데 이게 참 C를 다룬지 오래되서 그런지 빌드부터 코드 수정이 익숙치가 않았다. 가령 어떤 부분이 잘못되었는지는 감이 오는데, 이 걸 수정하려니까 조금 막막했던 경험이 있었고, 사실 이 책을 통해서 조금이나 기름칠을 하려고 했었다. 물론 이 책을 통해서라면 조금 수월했을 일들이다. 이밖에도 후반부에는 다른 언어와의 통합성에 대한 내용도 다루고 있어서 C를 쓰는 사람들이 다른 프로그래밍 언어로 구현된 내용과 어떤식으로 통신을 할 수 있는지에 대한 내용도 소개되었다. 진짜 이런 내용은 어떻게 보면 stackoverflow나 이런데서 검색해야 찾을 수 있는 내용인데, 진짜 광범위한 내용을 다루고 있다는 느낌을 받았다. 다만 책의 분량 자체가 일반적인 책의 분량의 두배 수준이기 때문에(대략 900페이지?) 책의 전체 내용을 꼼꼼히 파악하는데까지는 시간이 많이 필요할 것으로 생각한다. 그리고 C로 다룰 수 있는 또다른 극한의 주제를 모두 다루기에는 이 책의 분량가지고도 부족할 것이다. 하지만, 적어도 주어진 분량내에서 이 책은 앞에서 언급한 고급 주제에 대한 내용과 예시들을 충분히 다루고 있으며, 이 내용만으로도 일일이 내가 경험했던 것처럼 stackoverflow를 찾아해메야 했던 사람들에게는 좋은 가이드를 제공하지 않을까 생각한다. (해당 포스트에서 소개하고 있는 "전문가를 위한 C" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.) |
|
C는 오래된 프로그래밍 언어입니다. 다른 많은 프로그래밍 언어의 흥망성쇠에도 불구하고, 나온지 오래되었음에도 불구하고 중요한 프로그래밍 언어인것은 틀림없을것입니다. 한빛미디어에서 새로운 C 언어 책이 나왔습니다. 전문가를 위한 C 입니다. C와 C++로 개발을 하는데 익숙하거나 그에대한 지식이 있는 독자들을 대상으로 합니다. 또한 메모리, CPU, 주변 장치들의 특성을 알거나 하면 책을 읽는데 도움이 됩니다. 여타 다른 한빛출판에서 나온 책들과 달리(초보자를 위한) 쉽게 다가가기 위한 그림 등은 배제되어있습니다. 책의 쪽 수도 900페이지가 넘어갑니다. 중급자를 넘어 전문가로 나아가는데 필요한 책인거같습니다. C는 절차지향 프로그램이 언어이지만 챕터 3에는 객체지향 프로그래밍을 시도하는 부분도 있습니다. 책 대부분은자세한 설명, 고급활용, 그리고 운영체제등 광범위하게 다룹니다. 다른 프로그램이 언어를 사용할 때도 이 책에서 본 내용들은 많은 도움이 될 것입니다. C뿐만 아니라 C++를 사용하는 프로그래머라면 추천하는 책입니다..
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |