간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (17,100원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (12,600원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (14,400원)
(최대할인 4만원 / 2만원 이상 결제)
Close

도전 임베디드 OS 만들기 : 코딩하며 배우는 운영체제 원리

소득공제

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

공유하기
  • 저 : 이만우
  • 출판사 : 인사이트
  • 발행 : 2009년 03월 31일
  • 쪽수 : 360
  • ISBN : 9788991268579
정가

20,000원

  • 18,000 (10%할인)

    1,000P (5%적립)

할인혜택
적립혜택
  • S-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 9/25(월) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(96)

  • 상품권

AD

책소개

임베디드 운영체제에 도전하라!

삼성전자 반도체 총괄 소속 이만우의 『도전! 임베디드 OS 만들기 - 코딩하며 배우는 운영체제 원리』. 임베디드 ARM 프로세서 기반에서 운영체제를 개발하는 방법을 안내하고 있다. 전세계 임베디드 프로세서 시장을 독점하다시피한 ARM에 대한 전체적인 이해도 얻게 된다.

이 책은 자신의 손으로 직접 임베디드 운영체제를 만들고자 하는 개발자를 위해 저술된 것이다. 임베디드 운영체제 이론과 그것을 구현하는 기술을 습득하게 된다. 특히 직접 코딩하면서 배워나갈 수 있도록 꾸몄다. 코드를 꼭 따라하지 않고 읽기만 해도 이해할 수 있도록 구성되어 있어 바쁜 일상 속에서도 유용하다. 아울러 임베디드 개발 환경에 대한 경험을 얻을 수 있어 임베디드 개발 입문서의 역할도 한다.

출판사 서평

소개

이 책은, 불필요한 설명은 이론서에 맡기고, 담백하게 개발 위주로 설명한다. 시대의 흐름이 유비쿼터스와 모바일 중심으로 흘러가는 시점에, 임베디드 환경에서 동작하는 운영체제를 개발해 보는 것은 충분한 가치와 의미가 있다고 본다.
- 숭실대학교 컴퓨터학부 김명호 교수

이 책은 작고 간단한 임베디드 운영체제를 만들어 보면서 운영체제의 원리를 가르쳐준다. 어려운 전공 서적에나 나올 법한 설명들은 잠시 제쳐두고, 일단 코딩을 하면서 작동 방식을 파악해 보면 이론 역시 쉽게 이해하게 된다. 학교에서 배운 ‘운영체제 이론’만으로는 부족한 학생부터 운영체제가 어떻게 작동하는지 궁금한 사람, 임베디드 펌웨어를 개발해야 하는 개발자에 이르기까지, 이 책을 따라가다 보면 어느덧 작은 운영체제를 완성하게 될 것이다.


내용

- ARM 아키텍처의 기본
- 부트로더 재활용
- exception 핸들링
- 컨텍스트 스위칭
- 메모리 관리
- 외부 인터럽트 제어

- 시스템 콜
- 태스크 간 통신
- 동기화
- 디바이스 드라이버
- 에뮬레이터용 실습 코드


리뷰

1~3장은 임베디드 운영체제에 대한 간략한 설명과 EZ-X5 보드의 부팅, LED 점멸 등 간단한 작업을 통해 임베디드 개발에 필요한 기본적인 환경을 구축한다.
4~6장에서는 ARM의 exception, 동작 모드, 레지스터 조작 등을 설명하면서 exception vector table과 Software Interrupt Handler, IRQ 핸들러(타이머) 등을 구현한다.
7~10장에서는 메모리와 태스크를 관리하는 관리자 함수를 구현하고, 여기에 태스크 스케줄러를 합하여 멀티태스킹 운영체제로 나아가는 과정을 설명한다.
11~13장에서는 임베디드 기기 외부의 입력을 처리하는 외부 인터럽트와 운영체제의 기능을 일관성있게 추가하기 위한 시스템 콜을 구현하며, 이를 바탕으로 태스크 간 통신 기능을 구현한다.
14~16장에서는 시스템의 크리티컬 섹션에 접근하는 방법으로 세마포어와 뮤텍스 기능을 구현하며, 사용자 태스크가 요청하는 메모리를 동적으로 할당하는 기능, 임베디드 기기에 연결된 각종 장치를 제어하기 위한 디바이스 드라이버를 구현한다.
17장에서는 이제껏 구현한 운영체제의 파일 구성과 계층도를 설명하며 책을 마무리한다.


추천의 글

컴퓨터 프로그래밍은 끊임없는 추상화의 과정이다. 단순한 인터페이스로 구현을 감추는 추상화 기술은 컴퓨터 프로그래밍에서 미덕인 동시에 꼭 필요한 것이다. 운영체제, 데이터베이스, 컴파일러는 컴퓨터가 생겨난 이후 지난 40년간 발전을 거듭한 매우 복잡한 프로그램이다. 대부분 이런 프로그램은 고도로 추상화되어 있으므로 프로그래머가 이들을 사용하기 위해서 소프트웨어의 내부 구조나 구현을 이해할 필요는 거의 없다.

특히 운영체제는 컴퓨터 하드웨어 위에서 동작하는 프로그램 중 가장 복잡한 편에 속한다. 그리고 운영체제 위에서 동작하는 모든 소프트웨어는 운영체제가 제공하는 기능을 사용해야만 한다. 운영체제의 내부 구현을 모른 채 운영체제가 제공하는 API 문서만 보고도 훌륭한 프로그램을 충분히 만들 수 있다. 그렇다고 운영체제가 어떻게 구현되어 있고 어떻게 동작하는지 전혀 알 필요가 없는 것일까. 그렇지 않다. 운영체제의 원리를 이해하고 구현해보는 것은 운영체제를 공부하는 수준에서 그치지 않고 다른 여러 시스템 프로그램을 개발하는 데도 많은 도움을 준다.

대부분 컴퓨터 관련 대학의 교육과정에는 운영체제 과목이 포함되어 있다. 많은 것을 배울 수 있고 꼭 필요한 좋은 과목이지만 다른 과목에 비해 쉽다고 말할 수는 없다. 게다가 강의를 하는 교수가 수업의 난이도를 잘못 조절하면 엄청나게 어려워지기 때문에, 학생들이 운영체제 개발에 흥미를 가지기도 전에 지레 포기해 버리고 마는 사태가 발생하기도 한다.

이 책은 아주 작고 간단한 운영체제를 직접 개발하는 과정을 순서대로 설명하여, 운영체제라는 것을 크고 복잡하고 어렵고 범접할 수 없는 존재라고 인식했던 사람들에게 일종의 가이드라인을 제시한다. 그리고 불필요한 운영체제 이론 설명은 이론서에 맡기면서 담백하게 개발만을 위주로 설명했다.

사람들이 운영체제라고 하면 PC에서 동작하는 운영체제만 생각하는데 이 책에서는 임베디드 ARM 프로세서 기반에서 운영체제를 개발하는 과정을 설명한다. 시대의 흐름이 유비쿼터스와 모바일 중심으로 흘러가는 시점에 임베디드 환경에서 동작하는 운영체제를 개발해보는 것은 충분한 가치와 의미가 있다고 본다. 게다가 ARM 아키텍처 기반에서 운영체제를 개발했기 때문에 전세계 임베디드 프로세서 시장을 거의 독점하고 있는 ARM에 대한 전반적인 이해를 함께 얻을 수 있다.

학부 과정에서 운영체제 이론을 공부하였지만 그것이 구체적으로 어떻게 구현되는지 궁금한 학생들, 기업에서 임베디드 프로젝트를 진행하면서 시스템 전반을 관리하는 펌웨어를 개발해야 하는 개발자, 아니면 순수하게 운영체제가 어떻게 구현되는지 궁금한 사람들에게 이 책이 아주 훌륭한 대답을 해 줄 수 있으리라 생각한다.

- 숭실대학교 컴퓨터학부 교수 김명호

목차

추천의 글
지은이의 글

1장 임베디드 운영체제
1.1 운영체제
1.1.1 프로세스 관리
1.1.2 저장장치 관리
1.1.3 네트워킹
1.1.3 사용자 관리
1.1.5 디바이스 드라이버
1.2 임베디드 운영체제
1.3 나빌눅스
1.4 실습 : 임베디드 개발 환경 구성
1.4.1 목표 플랫폼 정하기
1.4.2 리눅스에서 크로스 컴파일 환경 설정
1.4.3 윈도에서 임베디드 개발 환경 구성
1.5 정리

2장 부팅하기
2.1 개발보드 선정하기
2.1.1 EX-X5 보드
2.2 이지보드에 나빌눅스 이미지를 올리는 방법
2.3 에뮬레이터 환경 구성
2.3.1 qemu
2.3.2 u-boot 설치
2.4 실습 : 이지보드에서 hello world를 출력하자
2.4.1 이지부트의 소스코드 재활용
2.4.2 커널 이미지 부팅하기
2.4.3 링커 스크립트 수정
2.5 실습 : 에뮬레이터에서 hello world를 출력하자
2.5.1 UART 주소 수정
2.5.2 에뮬레이터에서 부팅하기
2.5.3 uImage 만들기
2.5.4 램 디스크 이미지 만들기
2.5.5 플래시 이미지 만들어 부팅하기
2.6 실습 : 윈도 환경에서 에뮬레이터 실행시키기
2.6.1 시그윈에서 플래시 이미지 만들기
2.6.2 윈도용 에뮬레이터 실행
2.7 정리

3장 LED 켜기
3.1 부트로더 코드 재활용
3.2 실습 : 1초마다 LED를 켜 보자
3.2.1 이지부트에서 LED 관련 코드 분석
3.2.2 나빌눅스에 LED 점멸 코드 추가
3.3 정리

4장 exception vector table 구성하기
4.1 ARM의 exception과 프로세서 동작 모드
4.2 ARM의 exception vector table
4.3 실습 : 이지부트를 수정하여 exception 핸들링 하기
4.4 실습 : u-boot를 수정하여 exception 핸들링 하기
4.5 정리

5장 Software Interrupt Handler 구현하기
5.1 스택을 이용한 ISR과 태스크 간의 컨텍스트 스위칭
5.1.1 ISR
5.1.2 태스크-ISR 간 컨텍스트 스위칭
5.2 ARM 프로세서의 레지스터
5.2.1 스택 포인터
5.2.2 링크 레지스터
5.2.3 spsr
5.3 실습 : Software Interrupt Hanlding
5.3.1 실제 프로그램은 레지스터들을 어떻게 사용하는가
5.3.2 태스크-ISR 간 컨텍스트 스위칭 코드 구현
5.3.3 main 함수의 수정
5.3.4 시스템 콜 번호의 추출
5.4 정리

6장 IRQ 핸들러 구현 : OS 타이머 사용하기
6.1 PXA255의 인터럽트 컨트롤러 계층
6.1.1 OS 타이머
6.1.2 인터럽트 컨트롤러 계층
6.1.3 ICMR
6.1.4 ICLR
6.1.5 ICCR
6.1.6 ICFP, ICIP
6.1.7 ICPR
6.1.8 인터럽트의 종류
6.2 msleep() 함수 분석
6.3 PXA255의 OS 타이머 레지스터 계층
6.3.1 OSMR
6.3.2 OSCR
6.3.3 OIER
6.3.4 OSSR
6.4 실습 : IRQ 핸들러 구현 - OS 타이머
6.4.1 OS 타이머 초기화 함수 작성
6.4.2 OS 타이머 시작 함수 작성
6.4.3 커널 main 함수 수정
6.4.4 IRQ 핸들러 함수 수정
6.4.5 전체 작업 코드
6.4.6 태스크-ISR 간 컨텍스트 스위칭 코드 작성
6.4.7 ARM9 아키텍처의 파이프라인
6.4.8 exception 핸들러에서 복귀 주소의 결정
6.4.9 OS 타이머가 발생되는 순서
6.4.10 빌드와 테스트
6.5 정리

7장 메모리 맵 구성
7.1 나빌눅스의 메모리 맵
7.2 실습 : 나빌눅스 커널의 스택 주소 초기화
7.3 실습 : 스택 초기화 주소 확인하기
7.4 정리

8장 메모리 관리자 구현하기
8.1 임베디드 운영체제에서의 사용자 태스크
8.1.1 태스크
8.1.2 메모리 관리자
8.2 실습 : 메모리 관리자 정의
8.2.1 자유 메모리 블록 정의
8.2.2 메모리 관리자 함수 정의
8.3 실습 : 메모리 관리자 함수 구현
8.3.1 메모리 관리자 커널 전역 변수 선언
8.3.2 메모리 분할 크기 설정
8.3.3 mem_init() 함수 설명
8.3.4 mem_alloc() 함수 설명
8.3.5 navilnux.h 파일 수정
8.3.6 Makefile 수정
8.4 정리

9장 태스크 관리자 구현하기
9.1 태스크 컨트롤 블록
9.1.1 태스크 컨텍스트 정보
9.2 사용자 태스크
9.2.1 사용자 태스크의 등록과 로딩
9.3 실습 : 태스크 관리자 정의
9.3.1 태스크 컨트롤 블록 정의
9.3.2 사용자 태스크의 컨텍스트 자료형 크기
9.3.3 태스크 관리자 구조체 정의
9.4 실습 : 태스크 관리자 함수 구현
9.4.1 태스크 관리자 커널 전역 변수 선언
9.4.2 cpsr의 초기 값 설정
9.4.3 task_init() 함수
9.4.4 task_create() 함수
9.5 실습 : 사용자 태스크의 추가
9.5.1 사용자 태스크 함수의 추가
9.5.2 navilnux.h 파일 수정
9.5.3 navilnux.c 파일 수정 - navilnux_init() 함수 추가
9.5.4 main() 함수 수정
9.5.5 Makefile 수정
9.6 정리

10장 컨텍스트 스위칭 구현하기
10.1 컨텍스트 스위칭과 스케줄러
10.1.1 멀티태스킹
10.1.2 컨텍스트 스위칭
10.1.3 스케줄러
10.2 실습 : 컨텍스트 스위칭 구현
10.2.1 IRQ 핸들러 수정
10.2.2 태스크 컨텍스트 백업
10.2.3 IRQ 핸들러 함수에 진입
10.2.4 태스크 컨텍스트 복구
10.3 스케줄러 구현
10.3.1 다른 운영체제의 스케줄링 정책
10.3.2 가장 기본적인 스케줄러
10.3.3 라운드로빈 스케줄러 구현
10.3.4 스케줄러 초기화 코드 작성
10.3.5 커널 main() 함수 수정
10.3.6 OS 타이머 핸들러 수정
10.3.7 navilnux.c 전체 내용 다시 보기
10.3.8 사용자 태스크 수정
10.3.9 빌드와 테스트
10.4 실습 : 사용자 스택 할당 검증
10.5 정리

11장 외부 인터럽트
11.1 PXA255의 GPIO 레지스터 계층
11.1.1 대표적인 외부 인터럽트 : 입력 장치
11.1.2 GPIO
11.1.3 PXA255 칩의 GPIO 인터럽트 처리
11.1.4 Edge Detect
11.1.5 PXA255 칩에서 GPIO를 설정하는 레지스터들
11.1.6 GPDR
11.1.7 GFER과 GRER
11.1.8 GEDR
11.1.9 GAFR
11.1.10 버튼 회로 연결
11.2 GPIO 인터럽트 처리
11.2.1 GPIO 초기화 코드 작성
11.2.2 초기화 함수 추가
11.2.3 인터럽트 처리 코드 추가
11.2.4 수정된 전체 코드
11.2.5 테스트
11.3 정리

12장 시스템 콜 구현하기
12.1 리눅스의 시스템 콜
12.1.1 fork() 시스템 콜
12.2 실습 : 시스템 콜 계층 추가
12.2.1 시스템 콜 커널 함수 작성
12.2.2 시스템 콜 초기화 함수 호출
12.2.3 시스템 콜 관련 헤더 파일 작성
12.2.4 사용자 태스크 함수 수정
12.2.5 시스템 콜 래퍼 함수 작성
12.2.6 Software Interrupt의 ISR 수정
12.2.7 Makefile 수정
12.3 실습 : 시스템 콜 추가 절차
12.4 정리

13장 태스크 간 통신 구현하기
13.1 IPC(Inter-Process Communication)
13.1.1 파이프
13.1.2 FIFO
13.1.3 메시지 큐
13.1.4 공유 메모리
13.1.5 임베디드 운영체제의 ITC
13.2 컨텍스트 스위칭 시스템 콜 만들기
13.2.1 블로킹 상태
13.2.2 사용자 태스크에서 호출 가능한 컨텍스트 스위칭 시스템 콜 구현
13.2.3 스케줄러 시스템 콜 추가
13.2.4 entry.S 파일 수정
13.2.5 사용자 태스크에서 스케줄러 호출 테스트
13.3 실습 : 메시지 관리자 정의
13.3.1 navilnux_msg.h 파일 작성
13.3.2 자유 메시지 블록
13.3.3 메시지 관리자
13.3.4 메시지 관리자 제어 함수들
13.4 실습 : 메시지 관리자 함수 구현
13.4.1 msg_itc_send(), msg_itc_get() 함수 구현
13.4.2 navilnux.h 수정
13.4.3 navilnux_init() 함수 수정
13.5 실습 : 시스템 콜 계층에 ITC 함수 등록
13.5.1 시스템 콜 번호 추가
13.5.2 시스템 콜 함수 프로토타입 선언
13.5.3 시스템 콜 함수 본체 작성
13.5.4 시스템 콜 래퍼 함수 프로토타입 선언
13.5.5 시스템 콜 어셈블리어 래퍼 함수 작성
13.5.6 시스템 콜 C 래퍼 함수 프로토타입 선언
13.5.7 시스템 콜 C 래퍼 함수 본체 작성
13.5.8 ITC 테스트
13.6 정리

14 동기화 구현하기
14.1 세마포어
14.1.1 세마포어 구현하기
14.1.2 메시지 관리자 코드 수정
14.1.3 세마포어 함수 구현
14.1.4 새로운 시스템 콜 번호를 세마포어에 할당
14.1.5 시스템 콜 함수의 프로토타입 선언
14.1.6 시스템 콜 함수 작성
14.1.7 시스템 콜 래퍼 함수의 프로토타입 선언
14.1.8 시스템 콜 어셈블리어 래퍼 함수 작성
14.1.9 시스템 콜 C 언어 래퍼 함수 작성
14.1.10 사용자 태스크에서 세마포어 사용 테스트
14.2 뮤텍스
14.2.1 바이너리 세마포어와 뮤텍스의 차이
14.2.2 실습 : 뮤텍스 구현하기
14.2.3 메시지 관리자 수정
14.2.4 뮤텍스 함수 구현
14.2.5 뮤텍스에 시스템 콜 번호 할당
14.2.6 시스템 콜 함수 작성
14.2.7 시스템 콜 래퍼 함수 작성
14.2.8 사용자 태스크에서 뮤텍스 테스트
14.3 실습 : 시간 지연 함수 구현하기
14.3.1 커널 카운터 추가
14.3.2 sleep() 함수 구현
14.3.3 태스크 컨트롤 블록 수정
14.3.4 sleep() 함수 작성
14.3.5 수정된 sleep() 함수를 이용한 뮤텍스 테스트
14.4 정리

15 메모리 동적 할당 구현하기
15.1 메모리 동적 할당 설계
15.1.1 동적 할당에 사용할 메모리 영역
15.1.2 구현의 범위
15.1.3 메모리 풀
15.2 실습 : 메모리 동적 할당 구현
15.2.1 메모리 관리자 수정
15.2.2 동적 할당 전략
15.2.3 free() 함수 구현
15.2.4 malloc() 함수 구현
15.2.5 시스템 콜에 등록
15.2.6 메모리 동적 할당 테스트
15.3 정리

16 디바이스 드라이버 구현하기
16.1 디바이스 드라이버
16.1.1 리눅스 캐릭터 디바이스 드라이버 계층을 차용
16.2 실습 : 디바이스 드라이버 관리자 정의
16.2.1 fops 구조체
16.2.2 자유 디바이스 드라이버 블록
16.3 실습 : 디바이스 드라이버 관리자 구현
16.3.1 drv_init() 함수
16.3.2 drv_register_drv() 함수
16.3.3 시스템 콜에 등록
16.4 실습 : 디바이스 드라이버 추가하기
16.4.1 LED와 스위치를 디바이스 드라이버로 제어
16.4.2 IRQ 핸들러 벡터를 커널에 추가
16.4.3 read(), write() 함수 구현
16.4.4 IRQ 핸들러 함수
16.4.5 mydrv_open() 함수
16.4.6 mydrv_close() 함수
16.4.7 mydrv_read() 함수
16.4.8 mydrv_write() 함수
16.4.9 사용자 디바이스 드라이버를 커널에 등록
16.4.10 사용자 디바이스 드라이버를 테스트
16.5 정리

17 마치며
17.1 프로젝트 종료
17.2 나빌눅스의 파일 구성
17.2.1 entry.S, navilnux.c, navilnux.h
17.2.2 navilnux_memory.c, navilnux_memory.h
17.2.3 navilnux_task.c, navilnux_task.h
17.2.4 navilnux_user.c, navilnux_user.h
17.2.5 navilnux_sys.c, navilnux_sys.h, syscalltbl.h, navilnux_lib.S, navilnux_clib.c, navilnux_lib.h
17.2.6 navilnux_msg.c, navilnux_msg.h
17.2.7 navilnux_drv.c, navilnux_drv.h, mydrv.c
17.3 나빌눅스의 계층
17.4 맺음말
17.4.1 운영체제의 개념, 이론 그리고 구현
17.4.2 임베디드 개발 환경에 대한 경험
17.4.3 ARM 아키텍처에 대한 대략적 이해
17.4.4 마치며

찾아보기
약어표

저자소개

이만우 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이 상품의 시리즈

(총 97권 / 현재구매 가능도서 97권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    10.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    10.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

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

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크커머스 안전결제시스템 (에스크로) 안내

    (주)인터파크커머스의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

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

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시 15,000원 이상 무료배송, 15,000원 미만 2,500원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용