이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
우분투 환경에서 C 언어로 배우는 리눅스 프로그래밍
데이터베이스에서부터 네트워크, 그래픽, 디바이스까지 풍부한 예제로 배우는 라이브러리 활용법
베스트
IT 모바일 top100 17주
가격
32,000
10 28,800
YES포인트?
1,600원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

이 분야의 이벤트

책소개

목차

-옮긴이의 말
-지은이의 말

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 : 메모리 관리와 데이터 구조

저자 소개

저자 : 이이오 준
주식회사 미쯔비시 종합연구소 정보기술연구센터 주석연구원이다. 공학 박사, 정보공학부분 기술사이다. 1970년 출생으로 소년시절을 나가노에서 산에 둘러싸여 자랐다. 나가노현 나가노 고등학교를 졸업했다. 1994년 동경대학 대학원 공학계 연구과 계수공학 전공을 수료했다. 같은 해 주식회사 미쯔비시 종합연구소에 입사했다. 2009년부터 현재까지 동경농공대학 객원 준교수를 겸임하고 있다. 전문 분야는 화상처리, 유저 인터페이스, 정보시스템 최적화, 행동정보분석 등이다. 문학과 술을 더할 나위 없이 사랑하는 사십대 기술자이며, HCD-Net 인증 인간중심설계 전문가다. 저서로는 『Linux에 의한 화상처리 프로그래밍』(オ-ム사), 『연습과 사례로 배우는 프로젝트 매니지먼트 입문』(편저, 소프트뱅크 크리에이티브) 등이 있다.
역자 : 김성재
자바로 프로그래밍을 시작했지만 현재는 기술 분야 번역을 주로 한다. 평소 관심 분야는 IT 기술과 일본어 교육 콘텐츠 등이다. 최근에는 업무에 필요한 맥 OS와 iOS 애플리케이션 환경 구축에 관심을 가지고 있다.

품목정보

발행일
2012년 09월 01일
쪽수, 무게, 크기
564쪽 | 1005g | 188*254*35mm
ISBN13
9788979149531

책 속으로

윈도 환경에 더 친숙해서인지 기본적인 C 언어 지식이 있어도 리눅스에서의 프로그래밍은 선뜻 다가서기 어려운 주제라고 생각했습니다. 그렇게 막연히 어렵게만 생각하던 리눅스 환경에서의 프로그래밍을 이 책을 옮기면서 경험해 볼 수 있었습니다. 이 책은 앞으로 리눅스 환경에서 C 프로그래밍을 해야 하거나 리눅스 프로그래밍을 경험해보고 싶은 사람에게 바로 도움이 될 수 있는 실용적인 내용으로 구성되어 있습니다. 특히 라이브러리를 활용한 접근 방식과 흥미롭고 적절한 예제 덕분에 뒤로 갈수록 지루하지 않고 학습하는 재미를 느낄 수 있었습니다. 또, 가볍게 리눅스 프로그래밍을 경험해볼 수 있는 좋은 예제들은 한정된 지면에서 가능한 한 치우침 없이 많은 분야를 다뤄 초보자의 부족한 경험을 채워주려는 저자의 의도를 느낄 수 있게 합니다. 또한 저자도 서문에서 언급하고 있듯이 라이브러리를 이용하는 개념 자체는 플랫폼을 가리지 않으므로 다양한 환경에서 책의 내용을 응용할 수 있습니다. 교과서처럼 이 책을 중심으로 학습하면서 살을 붙여가면 새로운 아이디어를 구현하는 데 도움을 받을 수 있으리라 생각합니다.
떠오르는 대로 적다 보니 옮긴이의 말이 이 책의 첫 리뷰가 되고 말았습니다. 끝으로 오랜 기간 기다려 번역을 맡겨주시고 원고를 꼼꼼히 체크해주시고 좋은 책으로 만들어지는 데 많은 도움을 주신 한빛미디어(주) 조희진 씨께 감사 드립니다.

---「옮긴이의 말」 중에서

출판사 리뷰

이 책은 고성능 애플리케이션을 효율적으로 개발하기 위해 풍부한 예제를 통한 라이브러리 활용법을 익힌다.

고수만 아는 고기능 라이브러리로 빵빵한 C 프로그램 쉽게 만들기!

C 언어로 어느 세월에 빵빵한 애플리케이션을 만드냐고요? 처음부터 만들면야 (일일이 구현하고 테스트하고) 한 세월 걸리겠죠? 그렇다고 포기하지 마세요! 사실, 리눅스는 이미 여러분이 필요로 하는 거의 모든 기능을 라이브러리로 제공하고 있으니까요!

라이브러리 활용! 어렵지 않아요.

이 책이 리눅스 C 프로그래밍에 필요한 기초부터 활용까지 정말 체계적으로 알려주니까요! 아마도 여러분이 이 책을 다 읽을 즈음 ‘왜 그동안 이렇게 멋진 라이브러리를 활용하지 못했을까’라며 자책할지도 모릅니다. 아직 늦지 않았습니다.

어떤 독자를 위한 책인가?

-.반응형 웹 개발자
-.HTML, CSS, JavaScript 등 웹 기술을 기본적으로 알고 있는 웹 개발자

다음의 질문에 모두 “예”라고 대답한다면, 이 책은 바로 여러분을 위한 책입니다.
①웹 디자인이나 웹 개발 경험이 있나요?
②중요한 모바일 웹 개념을 배우고, 이해하고, 외우고, 적용해서 여러분의 모바일 웹 페이지를 더욱 흥미로운 대화식 페이지로 만들고 싶은가요?
③재미없고 따분하고 학구적인 강의보다는 활기 넘치는 대화식 커뮤니케이션을 더 좋아하나요?

리뷰/한줄평4

리뷰

8.6 리뷰 총점

한줄평

10.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정