우분투 환경에서 C 언어로 배우는 리눅스 프로그래밍 - 데이터베이스에서부터 네트워크, 그래픽, 디바이스까지 풍부한 예제로 배우는 라이브러리 활용법
이이오 준 지음, 김성재 옮김 / 한빛미디어 / 2012년 9월
평점 :
절판


1. 책의 구성

 * 각 챕터는 짦막한 주제를 다루고 있고 분량이 적은 편입니다.

  - 라이브러리 활용과 관련해서는 맛보기 수준이므로 이런것이 있고, 이렇게 사용하는구나 하고 기본적인 개념정도만 익히고 깊이있는 활용을 위해서는 다른 도서나 관련 튜토리얼 등을 통해 상세히 익혀야 할 것 같습니다.

  - 기본 개념 -> 라이브러리 소개 및 설치 -> 예제코드를 통한 활용 식으로 구성되어 있습니다.

  - 예제코드 뿐만 아니라 실행결과를 같이 첨부하여 독자가 실행했을때의 결과와 비교해볼 수 있도록 합니다.

 

 * 1장에서는 C언어를 기준으로 프로그래밍 언어의 배경지식 일부를 언급하고, 책에서 다루는 내용의 범위와 그 깊이에 대하여 제시합니다. 전제조건으로 미리 알아두어야 하는 사전 지식을 언급합니다만... C언어 문법은 반드시 알고 계셔야 하구요, 그 외에 기본적인 자료구조, 유닉스에 관한 기초지식과 터미널 등을 통한 CUI 조작 방법 및 각종 명령들은 알고 있으면 본문의 학습에 수월할 것입니다.

 

2. 독특한 점

 * 목차의 “칼럼 모아보기” 란에 언급된 칼럼은 본문 곳곳에 짧막하게 언급된 토막지식들을 의미하는데, 이 칼럼들의 제목을 목차에 모아두었다는게 흥미롭습니다.


 

3. 좋은 점

* 이해를 잘 시켜주는 저자의 설명방식과 꼼꼼한 첨부그림과 실행화면에 대한 예시, 핵심만 다룬 소스코드, 첨삭설명같은 저자주

 - 

 - 본문에 첨부된 그림들을 보면 본문에서 설명하고자 하는 내용에 대한 이해를 돕기 위해 구성요소, 처리과정이나 흐름에 대하여 깔끔하면서도 꼼꼼하게 짚어주려고 한것 같은 느낌이 듭니다.

 - 리눅스 명령이나 C언어 예제 소스의 경우 꼭 필요한 부분만 다루어서 알려주고자 하는 개념을 명확하게 전달해주는 것 같습니다.

 - 하단의 저자주 란을 통해 부연설명을 해줍니다.

 - 목차와 도서 마지막의 INDEX에서 원하는 부분만 찾아서 참고하는 방식으로 학습해도 좋을 것 같습니다.

 

4. 느낀 점

 * C언어를 다룬 책의 내용면에서 볼때 중급자를 대상을 하고 있어 초보자에게는 다소 어려울 수 있습니다.

   하지만 리눅스 환경에서의 프로그래밍 측면에서 볼 때 입문서로 정말 좋은 책이라는 생각이 듭니다.

 * 현업에서 사내 프로젝트의 개발환경과 고객사 설치환경의 차이로 발생하는 문제점들을 절실하게 느낄 수 있는 애로사항들이 잘 정리되어 있는것 같습다. 나만 그런걸 느끼는게 아니었구나! 하고 공감하게 되었습니다. 


 * 4장의 프로그램의 이식성에서 다루는 내용은 현업에서 충분히 겪을 수 있는 문제점들을 깊이 있게 다룹니다. 개발용 서버에서 개발을 하고 고객사의 상용화 서버에 이전작업을 할 때 발생하는 문제를 직접 겪어보았기에 몹시 공감이 가는 부분들 이었습니다. 리눅스 환경에서 아파치 웹서버와 PHP를 설치할 때 소스코드를 다운로드 받아 ./configure -> make -> make install 순서로 설치하곤 했는데, 정작 configure의 의미를 잘 모르고 있었습니다. 여기서 명확하게 짚어주어서 궁금증이 해결되었습니다.

 

 * 7장 데이터 다루기에서는 GLib에서 제공하는 자료구조 라이브러리를 설명하는 부분에서 기본적인 자료구조에 대한 개념과 주요 특징을 익힐 수 있습니다. 오히려 다른 도서에서 자료구조 하나에 한 챕터씩 길게 설명하는 것보다 필수적인 개념을 익히기에는 좋은것 같습니다.


5. 본문에서 다루는 라이브러리 관련 요약

 - 자료구조(배열, 리스트, 해시테이블, 스택과 큐)

 - XML 파일의 입력과 탐색, 출력

 - SQLite 활용

 - 서버-클라이언트 방식의 소켓 프로그래밍과 네트워크 상의 패킷 분석 방법

 - 수학에서 다루는 선형대수과 방정식의 풀이

 - 영상압축방식과 디지털 이미지 다루기, 아스키 아트

 - GUI 프로그래밍을 위한 위젯 라이브러리(GTK+, QT, FLTK, Motif)와 GUI 빌더

 - 컴퓨터 그래픽(CG): 벡터 vs 레스터, 2D 그래픽 라이브러리 Cairo, 3D 그래픽 라이브러리 OpenGL

 - 장치 액세스: 이미지 캡처 라이브러리(unicap), USB 장치 액세스 라이브러리(libusb), 휴먼 인터페이스 장비(HID) 조작 라이브러리(libhid), 지문인식 장치 라이브러리(ThinkFinger), 아이팟과 아이폰 데이터 액세스 라이브러리(libimobiledevice), 아이팟의 음악 데이터베이스 제어 라이브러리(libgpod)

 - 바코드 출력 라이브러리(barcode), 2차원 바코드 중 QR코드 관련 라이브러리(iec16022,qrencode), 문자열 해석 라이브러리(URI 해석-URIparser, MIME 데이터 처리 - GMime, 설정파일 읽기 - dot.conf)

 - 프로그램 테스트: 유닛 테스트 지원 도구(CUnit), 메모리 누수 검출 라이브러리(Dmalloc) 



댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo