이미 소장하고 있다면 판매해 보세요.
|
-옮긴이의 말
-지은이의 말 PART 1 기초편 - 실천적 C 프로그래밍 학습 -CHAPTER 1 왜 지금 C를 배워야 하는가? --1.1 알고리즘과 구현 --1.1.1 컴퓨터 프로그램의 동작원리 --1.1.2 프로그래밍 언어의 트렌드 --1.1.3 시스템 프로그래밍이란 --1.2 C 학습의 장점 --1.2.1 C 활용의 장점 --1.2.2 C의 단점 --1.3 이 책을 효과적으로 활용하려면 --1.3.1 이 책을 읽기 위한 전제조건 --1.3.2 이 책의 구성 -CHAPTER 2 우분투가 제공하는 학습 환경 --2.1 우분투 리눅스 설치 --2.1.1 우분투란 --2.1.2 우분투를 사용해보자 --2.1.3 패키지 관리 시스템 --2.2 C 언어 개발 환경 정비 --2.2.1 C 언어 컴파일러와 각종 도구 --2.2.2 에디터와 실행 환경 --2.2.3 개발 환경과 개발 스타일 -CHAPTER 3 대규모 개발 프로젝트와 라이브러리 이용 --3.1 프로그램 소스의 분할 --3.1.1 C 프로그램의 빌드 과정 --3.1.2 프로그램 소스를 분할하는 이유 --3.2 make의 이용 --3.2.1 빌드 자동화 --3.2.2 다양한 make의 기능 --3.3 라이브러리 활용과 헤더 파일의 의의 --3.3.1 라이브러리 --3.3.2 헤더 파일의 역할 --3.3.3 사전으로서의 헤더 파일 -CHAPTER 4 프로그램의 이식성 --4.1 프로그램 이식성 확보 --4.1.1 플랫폼과 환경설정에 의한 차이 --4.1.2 차이를 극복하는 방법 --4.2 Autotoolset --4.2.1 소스 코드 입수와 설치 --4.2.2 configure 스크립트 --4.2.3 Autotoolset을 이용한 이식성 높은 소프트웨어 --4.3 새로운 도구 CMake --4.3.1 CMake의 활용 --4.3.2 CMake로 프로그램 빌드 -CHAPTER 5 라이브러리의 특징과 활용 시 주의점 --5.1 외부 코드 이용의 실제 --5.1.1 라이브러리와의 결합 --5.1.2 정적 링크와 동적 링크 --5.1.3 동적 로드 --5.2 라이브러리를 좀 더 알아보자 --5.2.1 라이브러리의 더 많은 활용 --5.2.2 라이브러리 이용 시의 함정 --5.3 스코프와 이름 공간 --5.3.1 변수와 심볼의 유효범위 --5.3.2 파일 단위 관리 PART 2 활용편 - 다양한 라이브러리를 이용한 프로그래밍 -CHAPTER 6 옵션 해석 --6.1 명령줄 옵션 --6.1.1 프로그램에 전달하는 파라미터 --6.1.2 명령 인수 해석 --6.2 getopt와 getopot_long --6.2.1 명령줄 옵션이란 --6.2.2 짧은 옵션 해석 --6.2.3 긴 옵션 해석 --6.2.4 더욱 진화한 옵션 해석 -CHAPTER 7 데이터 다루기 --7.1 프로그램의 기본 구성 --7.1.1 알고리즘과 데이터 구조 --7.1.2 다양한 데이터 구조 --7.2 GLib을 이용한 기본적인 데이터 구조 --7.2.1 양끝에서 접근 가능한 큐 --7.2.2 연결 리스트 --7.2.3 배열 --7.3 XML 데이터 읽기 쓰기 --7.3.1 XML로 나타내는 데이터 구조 --7.3.2 libxml2 활용 -CHAPTER 8 데이터베이스 애플리케이션 --8.1 데이터베이스의 개요 --8.1.1 데이터베이스와 DBMS --8.1.2 관계형 데이터베이스 --8.1.3 데이터베이스 접근 예제 --8.2 SQLite 활용 --8.2.1 간편한 데이터베이스 --8.2.2 개발 패키지 설치와 예제 데이터 준비 --8.2.3 libsqlite3으로 데이터 읽기 쓰기 -CHAPTER 9 네트워크 --9.1 네트워크 프로그래밍의 기초 --9.1.1 서버와 클라이언트 --9.1.2 간단한 서버 프로그램 --9.1.3 실제 서버 프로그램 --9.2 네트워크 해석 --9.2.1 해석 도구 --9.2.2 패킷에 액세스하는 프로그래밍 -CHAPTER 10 과학기술계산 --10.1 과학기술계산의 역사와 응용 --10.1.1 컴퓨터의 등장과 물리연산 --10.1.2 다양한 문제들 --10.2 BLAS와 LAPACK --10.2.1 방정식과 행렬계산 --10.2.2 BLAS의 도입과 예제 프로그램 --10.2.3 LAPACK 설치와 예제 프로그램 --10.3 GSL --10.3.1 GSL이란 --10.3.2 GSL의 이용 -CHAPTER 11 이미지 데이터 처리 --11.1 이미지 처리 개론 --11.1.1 이미지 데이터 다루기 --11.1.2 각종 이미지 파일 형식 --11.1.3 프로그램에서 이미지 데이터 이용 --11.2 각종 라이브러리 이용 --11.2.1 libnetpbm --11.2.2 ImageMagick --11.2.3 gdk_pixbuf --11.3 아스키 아트 --11.3.1 아스키 아트의 종류 --11.3.2 아스키 아트 생성 라이브러리 -CHAPTER 12 GUI 프로그래밍 --12.1 GUI와 위젯 --12.1.1 위젯이란 --12.1.2 다양한 위젯 라이브러리 --12.1.3 GUI 프로그래밍의 기초 --12.2 GTK+ 첫걸음 --12.2.1 대화상자 표시 --12.2.2 GTK+로 만드는 Hello, world! --12.2.3 마우스 조작 --12.2.4 키보드 입력 처리 --12.3 GUI 빌더 --12.3.1 다양한 GUI 빌더 --12.3.2 libglade의 이용 -CHAPTER 13 컴퓨터 그래픽 --13.1 2D 그래픽 --13.1.1 그리기 라이브러리 --13.1.2 Cairo 입문 --13.1.3 아주 간단한 예제 프로그램 --13.1.4 대화형 그래픽 처리 --13.2 3D 그래픽 --13.2.1 OpenGL의 기초 --13.2.2 간단한 3D 애니메이션 --13.2.3 GLUT와 GTK+ -CHAPTER 14 장치 액세스 --14.1 이미지 캡처 --14.1.1 카메라 기기에서 이미지 가져오기 --14.1.2 리눅스에서 이용할 수 있는 카메라와 비디오 캡처 기기 --14.1.3 이미지 캡처 라이브러리 --14.1.4 카메라에서 이미지를 캡처하는 프로그램 --14.2 USB 장치 --14.2.1 USB 장치 제어 --14.2.2 HID 조작 --14.3 다양한 장치 액세스 --14.3.1 지문인식 장치 --14.3.2 아이폰, 아이팟 터치 액세스 --14.3.3 아이팟 액세스 -CHAPTER 15 인코딩, 디코딩, 문자열 해석 --15.1 바코드 --15.1.1 바코드 출력 --15.1.2 2차원 코드 --15.1.3 QR 코드 --15.2 문자열 해석 --15.2.1 URI --15.2.2 MIME --15.2.3 설정 파일 -CHAPTER 16 테스트 방법 --16.1 유닛 테스트 --16.1.1 테스트의 중요성 --16.1.2 CUnit의 이용 --16.2 메모리 관련 테스트 --16.2.1 C 프로그램의 메모리 관리 문제 --16.2.2 메모리 누수 검출 PART 3 실천편 - 프로그램 개발 사례 -CHAPTER 17 프로그래밍 사례: 도입에서 기본 조작까지 --17.1 볼록 껍질 문제 --17.1.1 볼록 집합과 볼록 껍질 --17.1.2 최소 블록 계산의 의의 --17.2 다시 하는 GTK+ 프로그래밍 --17.2.1 [스텝 1] 대화상자 표시 --17.2.2 [스텝 2] 대화상자 표시 수정 --17.3 프로그램 분할 --17.3.1 [스텝 3] 분할 컴파일 대응 --17.3.2 CMake 활용 --17.4 대화식 작동 --17.4.1 [스텝 4] 콜백 함수에 의한 그리기 처리 준비 --17.4.2 [스텝 5] 노드 추가 --17.4.3 [스텝 6] 마우스 커서 조작 --17.4.4 [스텝 7] 노드 조작 -CHAPTER 18 프로그래밍 사례: 조작방법 확장 --18.1 단일 노드에서 복수 노드로 --18.1.1 [스텝 8] 노드 집합(노드 리스트) 도입 --18.1.2 노드 집합을 관리하는 코드 구현 --18.2 다각형 생성 --18.2.1 [스텝 9] 다각형 데이터 도입 --18.2.2 [스텝 10] 올바른 다각형 생성 --18.2.3 정렬 코드 --18.3 GUI 확대와 알고리즘 구현 준비 --18.3.1 [스텝 11] 알고리즘 작성용 데이터 도입 --18.3.2 필드 수정 --18.3.3 그 밖의 수정 -CHAPTER 19 프로그래밍 사례: 알고리즘의 구현 --19.1 최소 볼록 계산 알고리즘 구현 --19.1.1 포장법 --19.1.2 축차구성법 --19.1.3 축차구성법의 구체적인 계산처리 --19.2 포장법에 의한 볼록 껍질 계산 구현 --19.2.1 [스텝 12] 볼록 껍질 클래스의 도입 --19.2.2 그 밖의 파일 수정 --19.2.3 많은 노드를 계산하는 예 --19.3 축차구성법에 의한 볼록 껍질 계산의 구현 --19.3.1 [스텝 13] 프로그램 수정 -끝맺으면서 -찾아보기 -칼럼 모아보기 --칼럼 1 : Super Cow Powers --칼럼 2 : 기계어를 읽다 --칼럼 3 : 디렉터리 구조의 가시화 --칼럼 4 : make의 다양한 활용법 --칼럼 5 : G_BEGIN_DECLS란? --칼럼 6 : 시스템에서 정의되는 매크로 --칼럼 7 : Makefile 이외의 프로젝트 파일 --칼럼 8 : 들여 쓰기와 스코프 --칼럼 9 : main() 함수의 세 번째 인수 --칼럼 10 : fall-through --칼럼 11 : 프로세스의 종료 상태 --칼럼 12 : NULL과 0 --칼럼 13 : foo, bar, baz? --칼럼 14 : pkg-config --칼럼 15 : GLib이 제공하는 형 --칼럼 16 : 복잡한 캐스트와 포인터형 선언의 표현방법 --칼럼 17 : GLib의 그 밖의 기능 --칼럼 18 : SQLite Database Browser에서의 한글 데이터 다루기 --칼럼 19 : 역따옴표와 for 문의 조합 --칼럼 20 : 아파치 로그를 정규표현으로 매칭 --칼럼 21 : 슈퍼 데몬 --칼럼 22 : telnet 활용법 --칼럼 23 : 패킷의 내용을 조사하자 --칼럼 24 : 지구 시뮬레이터 --칼럼 25 : 암호 같은 함수명 --칼럼 26 : 인라인 함수 --칼럼 27 : 가역압축과 비가역압축 --칼럼 28 : 이미지 처리 프로그램 디버그 --칼럼 29 : 메모리상에 전개한 이미지 데이터 직접 다루기 --칼럼 30 : C 프로그램에 이미지 삽입 --칼럼 31 : 아스키 아트의 응용 --칼럼 32 : C나 유닉스의 기초에 관한 권장 도서 --칼럼 33 : GUI의 장점과 CUI의 장점 --칼럼 34 : GNU hello --칼럼 35 : 정합성 검사가 딸린 형 변환 --칼럼 36 : GDK가 정의하는 키 값 --칼럼 37 : SVG 파일 --칼럼 38 : 동적 메모리 관리 연구 --칼럼 39 : 붙박이 모델 --칼럼 40 : EffecTV --칼럼 41 : FourCC와 다양한 이미지 데이터 형식 --칼럼 42 : ls… --칼럼 43 : 벤더 정보, 제품 정보 --칼럼 44 : usbmuxd의 자동 실행 --칼럼 45 : 종이 크기 정보 관리 --칼럼 46 : 오류 정정 레벨 --칼럼 47 : URI, URL, URN --칼럼 48 : 캡슐화와 추상 클래스 --칼럼 49 : 유닛 테스트 도구 --칼럼 50 : Boehm의 가비지 컬렉션 --칼럼 51 : C 언어 프로그래밍에 의한 메서드 호출 --칼럼 52 : 각양각색의 마우스 커서 --칼럼 53 : 다시 그리기 처리의 최적화 --칼럼 54 : 중심이 볼록 껍질에 반드시 포함되는 것에 대한 대수적 증명 --칼럼 55 : 내적과 외적을 이용한 두 개의 벡터가 이루는 각도 계산 --칼럼 56 : 이벤트 보내기 --칼럼 57 : 자식 클래스의 인스턴스를 부모 클래스의 타입으로 다루기 --칼럼 58 : 코드를 뒤에서부터 읽어가는 이유 --칼럼 59 : 메모리 관리와 데이터 구조 |
|
윈도 환경에 더 친숙해서인지 기본적인 C 언어 지식이 있어도 리눅스에서의 프로그래밍은 선뜻 다가서기 어려운 주제라고 생각했습니다. 그렇게 막연히 어렵게만 생각하던 리눅스 환경에서의 프로그래밍을 이 책을 옮기면서 경험해 볼 수 있었습니다. 이 책은 앞으로 리눅스 환경에서 C 프로그래밍을 해야 하거나 리눅스 프로그래밍을 경험해보고 싶은 사람에게 바로 도움이 될 수 있는 실용적인 내용으로 구성되어 있습니다. 특히 라이브러리를 활용한 접근 방식과 흥미롭고 적절한 예제 덕분에 뒤로 갈수록 지루하지 않고 학습하는 재미를 느낄 수 있었습니다. 또, 가볍게 리눅스 프로그래밍을 경험해볼 수 있는 좋은 예제들은 한정된 지면에서 가능한 한 치우침 없이 많은 분야를 다뤄 초보자의 부족한 경험을 채워주려는 저자의 의도를 느낄 수 있게 합니다. 또한 저자도 서문에서 언급하고 있듯이 라이브러리를 이용하는 개념 자체는 플랫폼을 가리지 않으므로 다양한 환경에서 책의 내용을 응용할 수 있습니다. 교과서처럼 이 책을 중심으로 학습하면서 살을 붙여가면 새로운 아이디어를 구현하는 데 도움을 받을 수 있으리라 생각합니다.
떠오르는 대로 적다 보니 옮긴이의 말이 이 책의 첫 리뷰가 되고 말았습니다. 끝으로 오랜 기간 기다려 번역을 맡겨주시고 원고를 꼼꼼히 체크해주시고 좋은 책으로 만들어지는 데 많은 도움을 주신 한빛미디어(주) 조희진 씨께 감사 드립니다. ---「옮긴이의 말」 중에서 |
|
이 책은 고성능 애플리케이션을 효율적으로 개발하기 위해 풍부한 예제를 통한 라이브러리 활용법을 익힌다.
고수만 아는 고기능 라이브러리로 빵빵한 C 프로그램 쉽게 만들기! C 언어로 어느 세월에 빵빵한 애플리케이션을 만드냐고요? 처음부터 만들면야 (일일이 구현하고 테스트하고) 한 세월 걸리겠죠? 그렇다고 포기하지 마세요! 사실, 리눅스는 이미 여러분이 필요로 하는 거의 모든 기능을 라이브러리로 제공하고 있으니까요! 라이브러리 활용! 어렵지 않아요. 이 책이 리눅스 C 프로그래밍에 필요한 기초부터 활용까지 정말 체계적으로 알려주니까요! 아마도 여러분이 이 책을 다 읽을 즈음 ‘왜 그동안 이렇게 멋진 라이브러리를 활용하지 못했을까’라며 자책할지도 모릅니다. 아직 늦지 않았습니다. 어떤 독자를 위한 책인가? -.반응형 웹 개발자 -.HTML, CSS, JavaScript 등 웹 기술을 기본적으로 알고 있는 웹 개발자 다음의 질문에 모두 “예”라고 대답한다면, 이 책은 바로 여러분을 위한 책입니다. ①웹 디자인이나 웹 개발 경험이 있나요? ②중요한 모바일 웹 개념을 배우고, 이해하고, 외우고, 적용해서 여러분의 모바일 웹 페이지를 더욱 흥미로운 대화식 페이지로 만들고 싶은가요? ③재미없고 따분하고 학구적인 강의보다는 활기 넘치는 대화식 커뮤니케이션을 더 좋아하나요? |