간편결제, 신용카드 청구할인
삼성카드 6% (27,920원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (28,220원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (20,790원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (23,760원)
(최대할인 4만원 / 2만원 이상 결제)
Close

리눅스 프로그래밍 with 라즈베리 파이 : 사물인터넷을 위한

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 202
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 저 : 서영진
  • 출판사 : 제이펍
  • 발행 : 2015년 08월 31일
  • 쪽수 : 712
  • 제품구성 : 전1권
  • ISBN : 9791185890289
정가

33,000원

  • 29,700 (10%할인)

    1,650P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(1)

  • 사은품(3)

출판사 서평

라즈베리 파이로 배우는 사물인터넷과 리눅스 프로그래밍!
기본적인 하드웨어 개발에서 리눅스 애플리케이션 개발까지!


이 책은 라즈베리 파이 같은 오픈 소스 하드웨어와 소프트웨어를 융합한 IoT 제품을 개발할 수 있도록 GPIO를 이용한 기본적인 하드웨어 개발에서부터 리눅스 프로그래밍까지의 모든 내용을 담고 있다. 또한, 여러 단계에 걸쳐 리눅스 프로그래밍에 대해 학습하고, 이를 사물인터넷 실무에 곧바로 적용할 수 있도록 구성하였다.

현재 세계 각국에서는 사물인터넷을 차세대 핵심 기술로 정하고 다양한 연구와 개발을 진행하고 있으며, 이에 따라 리눅스를 사용하는 플랫폼도 점점 증가하는 추세다. 라즈베리 파이로 손쉽게 사물인터넷을 학습할 수 있는 이 책이 미래를 준비하는 여러분에게 듬직한 가이드가 되기를 바란다.

이 책이 다루는 내용
- 라즈베리 파이와 GPIO를 이용한 하드웨어 제어
- 리눅스 시스템 프로그래밍
- 다중 처리
- 리눅스 네트워크 프로그래밍
- 리눅스 멀티미디어 프로그래밍
- 리눅스 GUI 프로그래밍
- 리눅스 커널 & 디바이스 드라이버 프로그래밍
- OpenCV와 GStreamer를 이용한 멀티미디어 스트리밍

목차

PART 1 라즈베리 파이 사용하기
CHAPTER 1 사물인터넷과 라즈베리 파이
1.1 사물인터넷과 오픈 소스 하드웨어 플랫폼
1.1.1 사물인터넷
1.1.2 오픈 소스의 발전과 오픈 소스 하드웨어의 등장
1.1.3 아두이노
1.2 라즈베리 파이 한 입 베어 물기
1.2.1 라즈베리 파이
1.2.2 라즈베리 파이의 모델 및 구조
1.3 라즈베리 파이를 위한 주변 도구
1.3.1 라즈베리 파이와 SD 카드
1.3.2 라즈베리 파이의 외부 하드웨어
1.4 라즈베리 파이를 위한 준비운동: 사용환경 설정
1.4.1 라즈베리 파이의 디스크 이미지와 윈도우에서의 설치
1.4.2 라즈베리 파이 이미지 설치: MS 윈도우
1.4.3 라즈베리 파이 이미지 설치: 리눅스
1.4.4 라즈베리 파이 이미지 설치: 맥 OS X
1.4.5 라즈베리 파이의 설정
1.5 요약

CHAPTER 2 리눅스의 기초: 라즈베리 파이와 친해지기
2.1 리눅스의 사용환경과 구조
2.1.1 리눅스의 시작
2.1.2 리눅스의 특징
2.1.3 리눅스의 구조
2.2 리눅스의 기본 명령어
2.2.1 셸과 프롬프트
2.2.2 리눅스의 기본 명령어
2.2.3 사용자 계정과 그룹
2.3 vi 에디터 63
2.3.1 텍스트 에디터
2.3.2 vi 에디터
2.3.3 nano 에디터
2.4 리눅스의 프로그래밍 도구
2.4.1 GCC
2.4.2 gcc 컴파일러
2.4.3 make 유틸리티
2.4.4 gdb 유틸리티
2.4.5 라이브러리 만들기
2.5 요약

CHAPTER 3 라즈베리 파이와 GPIO: 하드웨어 제어
3.1 GPIO의 개요
3.1.1 라즈베리 파이와 GPIO
3.1.2 하드웨어의 스케치와 fritzing
3.2 LED 제어 프로그래밍
3.2.1 전자 부품
3.2.2 전자 블록
3.2.3 GPIO와 LED
3.2.4 echo 명령어와 LED의 점멸
3.2.5 gpio 명령어
3.3 wiringPi를 이용한 GPIO 프로그래밍
3.3.1 wiringPi
3.3.2 wiringPi를 이용한 프로그래밍
3.4 스위치와 센서를 이용한 입출력
3.4.1 스위치의 사용
3.4.2 스피커의 사용
3.4.3 빛 감지 센서의 사용
3.4.4 DC 모터의 사용
3.4.5 7세그먼트의 사용
3.4.6 온습도 센서의 사용
3.5 요약

PART 2 리눅스 기본 프로그래밍
CHAPTER 4 리눅스 프로그래밍의 기초
4.1 리눅스의 기본 구조와 파일 시스템
4.1.1 리눅스 시스템의 구조
4.1.2 리눅스 파일 시스템
4.2 파일 처리와 표준 입출력
4.2.1 저수준 파일 입출력
4.2.2 표준 입출력 라이브러리
4.2.3 파일 조작 함수
4.3 파일 정보와 권한
4.3.1 파일 정보와 권한을 위한 리눅스 명령어
4.3.2 파일 정보
4.3.3 권한과 소유자
4.4 디렉터리와 시간 처리
4.4.1 디렉터리
4.4.2 유닉스의 시간
4.5 리눅스 시스템 프로그래밍과 라즈베리 파이의 제어
4.6 요약

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 FIFO
5.3.3 유닉스 시스템 V의 IPC 함수
5.4 POSIX 스레드와 동기화
5.4.1 POSIX 스레드
5.4.2 동기화
5.5 다중 처리와 라즈베리 파이의 제어
5.6 요약

CHAPTER 6 리눅스 네트워크 프로그래밍: 사물인터넷의 연결을 위한 기초
6.1 네트워크의 개요와 BSD 소켓
6.1.1 네트워크의 개요
6.1.2 BSD 소켓
6.2 UDP 네트워크 프로그래밍
6.2.1 소켓의 사용
6.2.2 서버를 위한 bind( ) 함수
6.2.3 바이트 순서 변환
6.2.4 네트워크 주소 변환
6.2.5 UDP 데이터의 송수신
6.2.6 바이트 조작
6.3 TCP 서버와 클라이언트 프로그래밍
6.3.1 TCP 클라이언트
6.3.2 TCP 서버
6.3.3 병행 처리 서버
6.4 HTTP와 웹 서버 프로그래밍
6.4.1 웹과 HTTP
6.4.2 웹 브라우저와 웹 엔진
6.4.3 HTTP의 구조
6.4.4 HTML
6.4.5 데몬 프로세스
6.4.6 인터넷 패킷 모니터링: Wireshark
6.5 웹 서버와 라즈베리 파이의 제어
6.6 요약

PART 3 리눅스 고급 프로그래밍
CHAPTER 7 리눅스 멀티미디어 프로그래밍: 현란함과 즐거움
7.1 멀티미디어와 라즈베리 파이
7.1.1 멀티미디어
7.1.2 색상 체계
7.1.3 사운드
7.1.4 아날로그/디지털 변환
7.1.5 리눅스 멀티미디어 시스템
7.1.6 라즈베리 파이의 멀티미디어 시스템
7.2 리눅스 사운드 프로그래밍
7.2.1 리눅스 사운드 시스템
7.2.2 ALSA를 이용한 오디오 프로그래밍
7.2.3 ALSA 프로그래밍
7.2.4 ALSA 믹서 프로그래밍
7.2.5 WAV 파일의 출력
7.3 프레임 버퍼를 통한 이미지 출력
7.3.1 프레임 버퍼의 정보 표시
7.3.2 프레임 버퍼를 이용한 그래픽
7.3.3 BMP 파일 표시하기
7.3.4 Qt를 이용한 이미지 표시
7.4 Video4Linux2와 Pi Camera
7.4.1 Video4Linux
7.4.2 Pi Camera
7.4.3 Video4Linux2 프로그래밍
7.4.4 BMP 파일로 이미지 캡처
7.5 라즈베리 파이와 멀티미디어
7.6 요약

CHAPTER 8 Qt를 이용한 GUI 프로그래밍: 더 편리한 접근성
8.1 Qt와 라즈베리 파이: Qt on Pi
8.1.1 X 윈도우 시스템
8.1.2 Qt의 개요
8.1.3 라즈베리 파이로 Qt 4 설치하기
8.1.4 라즈베리 파이에 Qt 5 설치하기
8.2 Qt 프로그래밍과 사용자 정의 위젯
8.2.1 Hello World! 프로그래밍
8.2.2 Qt에서의 위젯
8.2.3 Qt에서의 이벤트 처리
8.2.4 사용자 정의 위젯
8.2.5 사용자 정의 시그널과 슬롯
8.3 Qt 위젯과 레이아웃
8.3.1 Qt의 기본 위젯
8.3.2 버튼 위젯
8.3.3 정보 표시 위젯
8.3.4 문자 입력 위젯
8.3.5 범위 선택 위젯
8.3.6 레이아웃
8.3.7 Qt의 다이얼로그
8.3.8 Qt와 Video4Linux2
8.4 Qt Creator를 이용한 GUI 디자인
8.4.1 Qt Creator를 위한 환경 설정
8.4.2 C 언어를 위한 프로젝트 생성과 실행
8.4.3 Qt 애플리케이션을 위한 프로젝트
8.5 GUI와 라즈베리 파이
8.6 요약

CHAPTER 9 리눅스 커널과 디바이스 드라이버: 더 깊은 곳으로...
9.1 리눅스 커널과 디바이스 드라이버
9.1.1 리눅스 커널과 모듈
9.1.2 커널 영역과 유저 영역
9.1.3 리눅스 디바이스 드라이밍
9.2 리눅스 디바이스 드라이버 프로그래밍
9.2.1 라즈베리 파이에 리눅스 커널의 설치
9.2.2 시스템 호출
9.2.3 커널 모듈
9.3 시스템 레지스터와 LED 출력
9.3.1 CPU와 데이터 입출력
9.3.2 시스템 레지스터
9.4 LED 출력을 위한 GPIO 드라이버 프로그래밍
9.4.1 리눅스 디바이스 파일과 GPIO
9.4.2 리눅스 디바이스 드라이버 GPIO 프로그래밍
9.4.3 애플리케이션으로의 시그널 전달
9.5 요약

CHAPTER 10 부록
10.1 임베디드 리눅스 공부하기
10.1.1 하드웨어
10.1.2 소프트웨어
10.2 라즈베리 파이와 OpenCV
10.2.1 OpenCV 설치
10.2.2 OpenCV를 이용한 영상 처리 프로그래밍
10.2.3 OpenCV와 프레임 버퍼를 이용한 카메라 프로그래밍
10.2.4 OpenCV를 이용한 얼굴 인식
10.3 GStreamer를 이용한 멀티미디어 프로그래밍
10.3.1 GStreamer와 멀티미디어
10.3.2 GStreamer를 이용한 프로그래밍
10.3.3 GStreamer의 도구들
10.3.4 GStreamer와 스트리밍
10.4 소스 코드: 라즈베리 파이의 제어
10.4.1 프로젝트 파일
10.4.2 헤더 파일
10.4.3 소스 코드

본문중에서

애플리케이션 개발에서 가장 시간이 많이 걸리는 작업 중 하나가 바로 디버깅이다. 디버깅은 프로그램의 잘못된 부분, 즉 버그를 찾아내는 과정으로, 동적 메모리의 잘못된 사용, 적절하지 못한 스택의 크기, 엔디안 문제 등이 버그를 유발한다. 리눅스에서도 디버깅 작업을 보다 쉽게 하도록 gdb 유틸리티를 제공한다. gdb 유틸리티를 사용하면 애플리케이션을 실행하여 소스 코드 내의 특정 부분에서 브레이크포인트를 설정하고 변수 값을 조사하는 등 디버깅과 관련된 작업을 수행할 수 있다.
(/ p.95)

‘학교종’을 연주하는 프로그램을 작성해보자. ‘학교종 악보’의 계이름들을 주파수로 변환해서 나타낼 수 있다. 음악에서 사용하는 계이름은 1939년 영국 국제협약에 의해서 라(A) 음을 440Hz로 하고 있고, 옥타브(Octave) 사이의 간격은 약 2배의 크기를 갖는다. (중략) ‘학교종’의 첫 번째 음절인 ‘솔솔라라’는 ‘391 391 440 440’으로 표시할 수 있는데, 이 주파수를 이용하면 음악을 연주할 수 있다.
(/ p.119)

리눅스 시스템 프로그래밍으로 값을 출력하기 위해서는 라즈베리 파이에서 사용하는 메모리 맵 입출력이나 GPIO에 대한 메모리 주소와 값을 설정하는 방법 등 복잡한 개념에 대한 이해가 필요한데, 이를 보다 간단하게 처리하기 위해 wiringPi 라이브러리를 사용할 수 있다. wiringPi를 사용하면 LED 출력이나 스위치로부터의 입력을 보다 쉽게 처리할 수 있다. 또한, 기본적인 센서나 스위치의 사용뿐만 아니라 DC 모터 등의 기기를 지원하기 위해 PWM 생성을 위한 기능도 지원하며, 주파수를 기본값으로 하는 사운드 출력 기능도 제공한다.
(/ p.139)

유닉스에서는 파일, 디렉터리, 명명된 파이프, 소켓, 디바이스 등이 모두 파일로 취급되므로 이러한 디바이스 디바이스를 다루기 위해서는 파일 처리에 대해 반드시 알아야 한다. 리눅스에서는 저수준으로 파일을 다룰 수 있는 open(), read(), write(), close(), fcntl()/ioctl() 등의 함수들을 제공하고 있으며, 유닉스의 표준 라이브러리에서 제공하는 FILE 구조체를 이용하는 fopen(), fread(), fwrite(), fclose() 함수 등의 고수준의 파일 입출력 함수도 제공한다.
(/ p.203)

색상 변환에 대해 알아보았으므로 프레임 버퍼를 이용해서 그래픽 객체들을 그려보자. 프레임 버퍼에 색을 표시하기 위해서는 4장에서 설명한 파일 시스템을 이해할 필요가 있다. 유닉스에서는 파일, 디렉터리, 디바이스, 네트워크를 모두 파일로 취급하는데, 프레임 버퍼에는 ‘/dev/fb0’로 접근할 수 있다. 이 파일에 open(), close(), write(), lseek() 함수를 이용해서 원하는 동작을 수행할 수 있다.
(/ p.423)

저자소개

생년월일 -
출생지 -
출간도서 6종
판매수 850권

십여 년 넘게 IT 분야에서 프로그래밍을 하고 있으며, IT 전문 강사와 컨설턴트, 관광 TC로도 일하고 있다. 주요 저술로는 [[사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이]], [[타이젠으로 웨어러블 앱 개발하기]], [[사물인터넷: 우리가 꿈꾸는 스마트한 세상]], [[Qt 프로그래밍]] 등이 있다. 개발한 애플리케이션으로 리눅스용 다이얼패드, SKY 6400/6500 모바일 캠코더, 원자력 발전소 CPS 시스템, 신도리코 NEST UI, 삼성전자 VOIP 폰

펼쳐보기

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    10.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    9.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용