한빛출판네트워크

IT/모바일

우분투 환경에서 C 언어로 배우는 리눅스 프로그래밍

한빛미디어

번역서

절판

우분투 환경에서 C 언어로 배우는 리눅스 프로그래밍
좋아요: 43
  • 저자 : 이이오 준
  • 역자 : 김성재
  • 출간일 : 2012-09-24
  • 페이지 : 564쪽
  • ISBN : 9788979149531
  • 물류코드 :1953

합계 : 28,800

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

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

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

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

    책 소개

    이 책은 "Hello, World"로 C언어의 세계를 두드리고 다음 단계를 향해 내딪으려는 C언어 학습자에게 단비 같은 맞춤형 도서다. 각종 라이브러리를 친절하게 설명하고 응용 프로그래밍에 도움이 될 법한 기법을 다양하게 다뤘으며, 하나하나 예제를 들어 설명해 개념도 쉽게 익힐 수 있다. 우분투 리눅스 환경 세팅도 세세하게 설명하니 리눅스에 대한 두려움을 떨치고 도전해보자. 책에서 라이브러리를 완벽히 익힌다면 윈도우나 맥 OS에서도 응용할 수 있을 것이다.

  • [저자] 이이오 준

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

    [역자] 김성재

    기술 분야 전문 번역가. 관심 분야는 IT 기술과 일본어 교육 콘텐츠 등이다. 최근에는 업무에 필요한 맥 OS와 iOS 애플리케이션의 개발과 리뷰, 환경 구축에 관심이 있다. 번역서로는 『만들면서 배우는 기계 학습』, 『빅데이터의 충격』, 『C언어로 배우는 리눅스 프로그래밍』, 『구글 웹로그 분석』(이상 한빛미디어) 등이 있다.

     

  •   옮긴이의 말
      지은이의 말
     
    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 : 메모리 관리와 데이터 구조
  •  

    • 유닉스 리눅스 셸 스크립트 예제 사전

      오스미 유스케

    • 리눅스 시스템 프로그래밍(개정2판) : 커널과 C 라이브러리로 풀어가는(리눅스 3.x 최신 커널 기반)

      로버트 러브

    • 유닉스 리눅스 프로그래밍 필수 유틸리티(개정판) : vim make, gcc, gdb, svn, binutils, autoconf, autotools

      백창우

닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?