우분투 환경에서 C 언어로 배우는 리눅스 프로그래밍 - 데이터베이스에서부터 네트워크, 그래픽, 디바이스까지 풍부한 예제로 배우는 라이브러리 활용법
1. 이 책은?
이 책은 제목에서 모든 것을 말해주고 있다.
“우분투 환경”에서 알 수 있듯이 유명한 리눅스 배포판 중에 하나인 “우분투”를 기반으로 진행된다. 리눅스 환경에서 진행되는 책이기 때문에 당연히 운분투를 설치해야 하지만 기존에 C언어 교재가 Visual Studio 6/2008을 기준으로 설명되고 있는 것에 비해서 “리눅스”환경에서 진행된다는 점은 매우 고무적이고 매력적이라 할 수 있다.
그리고 “C언어” 를 기준으로 설명된다. 매우 바람직하고 아름다운 모습이라 할 수 있다. 안드로이드 열풍 덕분에 자바 개발자가 많아졌지만 C언어의 필요성은 전혀 줄어들지 않았다. NDK/PDK 덕분에 C언어를 자유롭게 활용하는 개발자가 더욱더 많이 필요해졌기 때문이다.
프로그램을 공부 할 때는 좋은 예제 하나가 100 페이지의 글보다 낫다. “예제로 배우는 라이브러리 활용법”에서 알 수 있듯이 다양한 라이브러리를 매우 간단한 예제를 통해서 배우게 된다. 그 간단한 예제를 요리/조리/이리/저리 굴리다 보면 다양한 라이브러리를 알 수 있게 되어있다. 가장 마음에 드는 점이라 할 수 있다.
2. 장점과 단점
모든 책은 장점과 단점이 있지만, 이 책은 장점이 너무 크다. 그렇다면 이 책의 장점은 무엇인가?!
첫째, 리눅스 환경에서 모듈화된 소스를 제공한다. 이게 무슨 장점인가? 싶겠지만 현대의 대부분의 소프트웨어는 모두 팀단위로 움직인다. GitHub과 같은 것들이 개발자의 관심과 인기를 한 몸에 받는 이유는 GitHub를 통해서 “협업”을 할 수 있기 때문이다. 하지만 기존의 교재는 모든 소스를 하나의 파일에 넣어서 컴파일하고 실행한다. 초보 개발자들이 학습과정에서는 어쩔 수 없이 따라하게 되는 이러한 행동은 협업 프로그램에 대한 이해를 매우 떨어뜨리게 된다. 하지만 이 책은 모듈화된 소스를 제공하고 있기 때문에 중규모의 소프트웨어 제작에도 도움이 된다. 그리고 프로그래밍 환경이 리눅스이기 때문에 누리는 다양한 재미와 재미있는 보조 소프트웨어에 대한 소개도 굉장히 마음에 든다(특히 컬럼쵝오!)
둘째, 라이브러리 활용을 할 수 있다. C언어를 처음 배우고 자료구조와 알고리즘을 마스터하고 나면 무엇을해야 할까? 당연히 프로젝트를 진행해야 한다. 프로젝트를 진행하면서 다양한 경험을 쌓아야 한다. “도서관리”, “테트리스” 등과 같은 고전적인 소프트웨어부터 리눅스 커널까지 다양한 경험을 통해서 소프트웨어 개발을 진행하게 된다. 하지만 이런 중규모 이상의 소프트웨어는 다양한 라이브러리를 활용해야 한다. XML 파일을 다루기 위해서 본인인 XML 파서를 만들기 보다는 제공되는 XML 라이브러리를 활용하는 것이 이득이다. 이 책은 그러한 라이브러리에 대한 소개와 함께 매우 핵심적인 소스를 제공한다.
이 책의 단점은 무엇일가? 이 책은 다양한 라이브러리를 소개하고 있기 때문에 깊이가 조금 떨어진다. 이러한 단점은 참고문헌이나 기타 참고자료 등으로 대신 할 수 있지만, 책에는 그러한 점이 없다는 점이 조금은 아쉽다.
3. 총평
당신이 C언어를 배웠다면 꼭 구매하라 강권하고 싶다. 매우 좋은 책이다. C언어를 배운 이상 자료구조와 알고리즘은 넘어야 하는 산이다. 하지만 그 높은 산을 넘으면서 가벼운 라이브러리의 세계에 발을 들여다 보는 것은 어떻까?
C언어 중급으로 가기 위한 가장 좋은 책이라 단언한다.