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

Great Code Vol 2 : 로우레벨로 생각하고 하이레벨로 코딩하기[초판]

원제 : Write Great Code, Volume 2, 2nd Edition
소득공제

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

판매지수 36
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

45,000원

  • 40,500 (10%할인)

    2,250P (5%적립)

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

  • 연관도서(21)

  • 상품권

AD

책소개

오늘날의 프로그래밍 언어는 생산성과 이식성을 제공하는데, 컴파일러에 최적화되지 않은 조잡한 코드를 쉽게 작성할 수도 있다. 로우레벨로 생각하고 하이레벨 언어로 코딩하면 컴파일러로 좋은 기계어 코드를 생성해내는 소스 코드를 만들 수 있게 해준다.

출판사 서평

◈ 추천의 글 ◈

“아직 서점에 있다면, 친구에게 부탁하거나 돈을 모아 이 책을 구입하라. 집에 도착하면,
그 안에 담긴 내용을 마스터할 수 있도록 읽고 또 읽어라.”
- 데브시티(DevCity)

“이 책은 HLL로 애플리케이션을 작성할 때 개발자가 애플리케이션 성능에 더 많은 주의
를 기울이도록 충분히 도와준다. 모든 하이레벨 애플리케이션 개발자에게 필수 도서다.”
- 「Free Software Magazine」

“HLL 프로그래머로서, 프로그램에서 실제로 무슨 일이 일어나고 있는지 알고 싶다면 어
셈블리 언어를 배워라. 그보다 더 쉬운 방법은 없다.”
- 데브엑스(DevX)

“좋은 책이다. 매우 매우 훌륭한 책이다. 솔직히 글의 퀄리티가 엄청나다.”
- 토론토 루비 사용자 그룹(Toronto Ruby User Group)

◈ 이 책에서 다루는 내용 ◈

◆ 코드가 좋은 기계어 코드를 생성하는지 컴파일러의 출력물을 분석해 확인하는 방법
◆ 컴파일러가 생성하는 기계어 코드 명령문의 유형을 이해하고, 하이레벨 언어로 코딩할 때 최선의 명령문을 선택
◆ 컴파일러 출력을 읽기에 충분한 어셈블리 언어
◆ 컴파일러가 다양한 상수 및 변수 오브젝트를 기계어 데이터로 변환하는 방법

◈ 이 책의 대상 독자 ◈

독자들이 어느 정도의 사전 지식을 갖추고 있다는 가정을 바탕으로 한다. 다음과 같은 스킬을 갖고 있다면, 이 책에서 최대한 도움을 얻을 수 있다.

◆ 적어도 하나 이상의 명령형(절차적) 프로그래밍 언어나 객체지향 프로그래밍 언어에 상당히 능숙하다. (예를 들면, C, C++, 파스칼(Pascal), 자바(Java), 스위프트(Swift), 베이직(BASIC), 파이썬(Python), 어셈블리(assembly), 에이다(Ada), 모듈라-2(Modula-2), 포트란(FORTRAN) 등)
◆ 간단한 문제에 대한 설명을 듣고 해당 문제에 대한 소프트웨어 솔루션을 설계하고 구현할 수 있어야 한다. 대학에서 한 학기 정도 관련 과목을 수강했거나 몇 개월 정도 독학했다면, 충분히 준비될 수 있다.
◆ 컴퓨터 구조나 데이터 표현에 대한 기본적인 이해가 있어야 한다. 16진수와 이진수 시스템을 알아야 한다. 부호 있는 정수, 문자, 문자열 등 다양한 하이레벨 데이터 유형이 컴퓨터 메모리에 어떻게 표현되는지 이해하고 있어야 한다.

◈ 이 책의 구성 ◈

효율적인 코드를 작성하기 위해 전문 어셈블리 언어 프로그래머가 될 필요는 없지만, 이 책의 컴파일러 출력을 이해하려면 최소한 이에 대한 기본 지식은 필요하다. 1장과 2장에서는 어셈블리 언어 학습의 여러 측면을 살펴보고, 일반적인 오해, 컴파일러에 대한 고려사항, 사용 가능한 리소스를 다룬다. 3장에서는 80x86 어셈블리 언어에 대한 빠른 입문가이드를 제공한다. 온라인 부록(http://www.randallhyde.com/)은 파워PC, ARM, 자바 바이트코드, CIL(Common Intermediate Language) 어셈블리 언어에 대한 입문 가이드를 제공한다.
4장과 5장에서는 컴파일러 출력을 검사해 HLL 구문의 품질을 결정하는 방법에 대해 배운다. 또한 디스어셈블러, 오브젝트 코드 덤프 툴, 디버거, 어셈블리 언어 코드를 표시하기 위한 다양한 HLL 컴파일러 옵션과 기타 유용한 소프트웨어 툴에 대해 설명한다.
이 책의 나머지 부분인 6~15장에서는 컴파일러가 다양한 HLL 구문과 데이터 유형에 대한 기계어 코드를 생성하는 방법에 대해 설명한다. 이 지식들로 무장하면, 가장 적절한 데이터 유형, 상수, 변수, 제어 구조를 선택해 효율적인 애플리케이션을 생성할 수 있다.

◈ 옮긴이의 말 ◈

이 책은 무려 40여 년 전에 소프트웨어 개발자로 일을 시작했던 랜달 하이드의 『Write Great Code』 시리즈의 두 번째 책으로, 지난 40여 년간 소프트웨어 개발 산업에 존재해 왔던 방법론, 전략, 실무 이론, 체계를 집대성했다. 저자는 『Write Great Code』 시리즈 1, 3편에서 하드웨어와 효과적으로 소통하는 방법과 개발자가 어떻게 소프트웨어를 완성하는지 소개했으며, 이 책(2편)에서는 로우레벨로 생각하고 하이레벨로 코딩하는 방법을 설명한다.
저자 랜달 하이드의 시대에 각광받던 개발 주제는 현재 클라우드, 인공지능, 양자컴퓨팅, 블록체인 등과 같은 주제로 바뀌었고, 개발 접근 전략이나 방법론 또한 좀 더 세분화되거나 아예 달라지기도 했다. 하지만 더 좋은 소프트웨어를 만들기 위한 열정은 개발자 모두의 공통된 마음이 아닐까 한다.
이 책은 소프트웨어 개발자들이 하이레벨과 로우레벨 사이의 모든 것을 이해하고, 프로그램 개발에 적극 활용하고자 할 때 읽기 좋을 것이다. 지난 수십 년간 존재해온 개발담론을 확인하며 앞으로 수년간 개발자로서 자신의 경력을 어떤 방식으로 관리할 것인지 계획을 세우고 싶을 때 참고할 수 있을 것이다. 이런 독자들에게 저자는 다양한 예제와 코드를 활용해 체계적으로 자세히 설명한다.
지난 프로젝트보다 더 좋은 코드를 좀 더 효율적으로 만들어내기 위해 고민하는 개발자에게도 추천한다.

목차

1장. 로우레벨로 생각하고 고급 언어로 코딩하기
__1.1 컴파일러 품질에 대한 오해
__1.2 어셈블리 언어를 배우는 것이 여전히 좋은 생각인 이유
__1.3 어셈블리 언어를 배우는 것이 절대적으로 필요하지 않은 이유
__1.4 로우레벨에 대한 고려
____1.4.1 받은 만큼만 돌려주는 컴파일러
____1.4.2 컴파일러가 더 좋은 기계어 코드를 생성하도록 돕는 방법
____1.4.3 어셈블리를 고려한 HLL 코딩 방법
__1.5 HLL 코딩
__1.6 언어 중립적 접근
__1.7 추가 팁
__1.8 참고 자료


2장. 어셈블리 언어를 꼭 배워야 할까?
__2.1 어셈블리 언어 학습의 이점과 장애물
__2.2 이 책이 도움이 되는 방법
__2.3 해결책: 하이레벨 어셈블러
__2.4 고급 어셈블리 언어
__2.5 하이레벨로 생각하고 로우레벨로 코딩하기
__2.6 어셈블리 프로그래밍 패러다임(로우레벨로 생각하기)
__2.7 참고 자료


3장. HLL 프로그래머를 위한 80X86 어셈블리
__3.1 배울수록 도움이 되는 어셈블리 언어
__3.2 80x86 어셈블리 문법
____3.2.1 기본 80x86 아키텍처
____3.2.2 레지스터
____3.2.3 80x86 32비트 범용 레지스터
____3.2.4 80x86 EFLAGS 레지스터
__3.3 리터럴 상수
____3.3.1 이진 리터럴 상수
____3.3.2 십진 리터럴 상수
____3.3.3 16진 리터럴 상수
____3.3.4 문자와 문자열 리터럴 상수
____3.3.5 실수 리터럴 상수
__3.4 어셈블리 언어에서의 선언(기호) 상수
____3.4.1 HLA의 선언 상수
____3.4.2 Gas의 선언 상수
____3.4.3 MASM의 선언 상수
__3.5 80x86 주소 지정 방식
____3.5.1 80x86 레지스터 주소 지정 방식
____3.5.2 즉시 주소 지정 방식
____3.5.3 직접 메모리 주소 지정 방식
____3.5.4 RIP 관련 주소 지정 방식
____3.5.5 레지스터 간접 주소 지정 방식
____3.5.6 인덱스 주소 지정 방식
____3.5.7 스케일 인덱스 주소 지정 방식
__3.6 어셈블리 언어에서 데이터 선언하기
____3.6.1 HLA에서의 데이터 선언
____3.6.2 MASM에서의 데이터 선언
____3.6.3 Gas에서의 데이터 선언
__3.7 어셈블리 언어에서 오퍼랜드 크기 지정
____3.7.1 HLA에서의 타입 지정
____3.7.2 MASM에서의 타입 지정
____3.7.3 Gas에서의 타입 지정
__3.8 참고 자료


4장. 컴파일러 동작 및 코드 생성
__4.1 프로그래밍 언어가 사용하는 파일 유형
__4.2 소스 파일
____4.2.1 토큰화 소스 파일
____4.2.2 특화된 소스 파일
__4.3 컴퓨터 언어 프로세서의 유형
____4.3.1 순수 인터프리터
____4.3.2 인터프리터
____4.3.3 컴파일러
____4.3.4 증분 컴파일러
__4.4 변환 프로세스
____4.4.1 스캐닝(어휘 분석)
____4.4.2 파싱(구문 분석)
____4.4.3 중간 코드 생성
____4.4.4 최적화
____4.4.5 컴파일러 벤치마킹
____4.4.6 네이티브 코드 생성
__4.5 컴파일러 출력
____4.5.1 컴파일러 출력으로 HLL 코드 내보내기
____4.5.2 컴파일러 출력으로 어셈블리 언어 내보내기
____4.5.3 컴파일러 출력으로 오브젝트 파일 내보내기
____4.5.4 컴파일러 출력으로 실행 파일 내보내기
__4.6 오브젝트 파일 형식
____4.6.1 COFF 파일 헤더
____4.6.2 COFF 옵션 헤더
____4.6.3 COFF 섹션 헤더
____4.6.4 COFF 섹션
____4.6.5 재배치 섹션
____4.6.6 디버깅 및 심벌 정보
__4.7 실행 파일 형식
____4.7.1 페이지, 세그먼트, 파일 크기
____4.7.2 내부 단편화
____4.7.3 왜 공간 최적화를 하는가?
__4.8 오브젝트 파일의 데이터 및 코드 정렬
____4.8.1 섹션 정렬 크기 선택
____4.8.2 섹션 결합
____4.8.3 섹션 정렬 값 제어
____4.8.4 라이브러리 모듈 내 섹션 정렬
__4.9 링커가 코드에 미치는 영향
__4.10 참고 자료


5장. 컴파일러 출력물을 분석하기 위한 툴
__5.1 배경지식
__5.2 컴파일러에서 어셈블리 코드를 출력하는 법
____5.2.1 GNU 컴파일러의 어셈블리 코드 결과물
____5.2.2 비주얼 C++의 어셈블리 코드 결과물
____5.2.3 어셈블리 코드 결과물 예제
____5.2.4 어셈블리 코드 결과물 분석
__5.3 오브젝트 코드 유틸리티를 사용해 컴파일러 출력 분석하기
____5.3.1 마이크로소프트의 dumpbinexe 유틸리티
____5.3.2 FSF/GNU objdump 유틸리티
__5.4 역어셈블러를 사용해 컴파일러 출력 분석하기
__5.5 자바 바이트코드 역어셈블러를 사용해 자바 출력 분석하기
__5.6 IL 역어셈블러를 사용해 마이크로소프트 C# 및 비주얼 베이직 코드 결과물 분석하기
__5.7 디버거를 사용해 컴파일러 출력 분석하기
____5.7.1 IDE에 내장된 디버거를 사용하는 방법
____5.7.2 독립된 디버거를 사용하는 방법
__5.8 두 컴파일의 출력 비교
____5.8.1 diff를 이용한 코드의 전과 후 비교
__5.9 참고 자료


6장. 상수와 HLL
__6.1 리터럴 상수와 프로그램 효율성
__6.2 바인딩 시간
__6.3 리터럴 상수와 선언 상수
__6.4 상수식
__6.5 선언 상수와 읽기 전용 메모리 객체
__6.6 스위프트 let 문
__6.7 열거형
__6.8 부울 상수
__6.9 실수 상수
__6.10 문자열 상수
__6.11 복합 데이터 타입 상수
__6.12 상수는 변하지 않는다
__6.13 참고 자료


7장. HLL의 변수
__7.1 런타임 메모리 구성
____7.1.1 코드, 상수, 읽기 전용 섹션
____7.1.2 정적 변수 섹션
____7.1.3 스토리지 변수 섹션
____7.1.4 스택 섹션
____7.1.5 힙 섹션과 동적 메모리 할당
__7.2 변수란?
____7.2.1 속성
____7.2.2 바인딩
____7.2.3 정적 객체
____7.2.4 동적 객체
____7.2.5 범위
____7.2.6 수명
____7.2.7 변수 정의
__7.3 변수 저장 공간
____7.3.1 정적 바인딩과 정적 변수
____7.3.2 의사 정적 바인딩과 자동 변수
____7.3.3 동적 바인딩 및 동적 변수
__7.4 공통 기본 데이터 타입
____7.4.1 정수 변수
____7.4.2 부동 소수점/실수 변수
____7.4.3 문자 변수
____7.4.4 부울 변수
__7.5 변수 주소와 HLL
____7.5.1 전역 변수와 정적 변수의 저장 공간 할당
____7.5.2 자동 변수를 사용해 오프셋 크기 줄이기
____7.5.3 중간 변수를 위한 저장 공간 할당
____7.5.4 동적 변수와 포인터를 위한 스토리지 할당
____7.5.5 레코드/구조체를 사용해 명령어 오프셋 크기 줄이기
____7.5.6 레지스터에 변수 저장
__7.6 메모리의 변수 정렬하기
____7.6.1 레코드와 정렬
__7.7 참고 자료


8장. 배열 자료형
__8.1 배열
____8.1.1 배열 선언
____8.1.2 메모리에서의 배열 표현
____8.1.3 스위프트 배열 구현
____8.1.4 배열 원소에 접근하기
____8.1.5 패딩 vs 패킹
____8.1.6 다차원 배열
____8.1.7 동적 배열과 정적 배열
__8.2 참고 자료


9장. 포인터 자료형
__9.1 포인터의 정의
__9.2 HLL에서의 포인터 구현
__9.3 포인터와 동적 메모리 할당
__9.4 포인터 연산과 포인터 산술
____9.4.1 포인터에 정수 더하기
____9.4.2 포인터에서 정수 빼기
____9.4.3 포인터에서 포인터 빼기
____9.4.4 포인터 비교
____9.4.5 포인터와 논리 AND/OR 연산
____9.4.6 포인터의 다른 연산
__9.5 단순 메모리 할당자 예제
__9.6 가비지 컬렉션
__9.7 운영체제와 메모리 할당
__9.8 힙 메모리 오버헤드
__9.9 일반적인 포인터 문제
____9.9.1 초기화되지 않은 포인터 사용
____9.9.2 잘못된 값을 포함하는 포인터 사용
____9.9.3 포인터 해제 후 스토리지 계속 사용
____9.9.4 프로그램을 사용한 후, 저장 공간 해제 실패
____9.9.5 잘못된 자료형을 사용해 간접 데이터 액세스
____9.9.6 포인터에 대한 잘못된 연산 수행
__9.10 현대 언어의 포인터
__9.11 관리 포인터
__9.12 참고 자료


10장. 문자열 자료형
__10.1 문자열 형식
____10.1.1 0으로 끝나는 문자열
____10.1.2 길이 접두사 문자열
____10.1.3 7비트 문자열
____10.1.4 HLA 문자열
____10.1.5 설명자 기반 문자열
__10.2 정적, 가상 동적, 동적 문자열
____10.2.1 정적 문자열
____10.2.2 가상 동적 문자열
____10.2.3 동적 문자열
__10.3 문자열의 참조 카운트
__10.4 델파이 문자열
__10.5 HLL에서 문자열 사용
__10.6 문자열의 유니코드 문자 데이터
____10.6.1 유니코드 문자 집합
____10.6.2 유니코드 코드 포인트
____10.6.3 유니코드 코드 플레인
____10.6.4 서로게이트 코드 포인트
____10.6.5 글리프, 문자, 그래핌 클러스터
____10.6.6 유니코드 일반 및 정규 동등성
____10.6.7 유니코드 인코딩
____10.6.8 유니코드 조합 문자
__10.7 유니코드 문자열 함수 및 성능
__10.8 참고 자료


11장. 레코드, 유니온, 클래스 자료형
__11.1 레코드
____11.1.1 다양한 언어에서의 레코드 선언
____11.1.2 레코드 인스턴스 생성
____11.1.3 컴파일 타임에 레코드 데이터 초기화하기
____11.1.4 메모리에 레코드 저장
____11.1.5 레코드를 사용해 메모리 성능 향상
____11.1.6 동적 레코드 타입과 데이터베이스
__11.2 판별자 유니온
____11.2.1 다양한 언어에서의 유니온 선언
____11.2.2 메모리에 유니온 저장
____11.2.3 다른 방법으로 유니온 사용
__11.3 가변형
__11.4 네임스페이스
__11.5 클래스와 객체
____11.5.1 클래스 vs 객체
____11.5.2 C++의 간단한 클래스 선언
____11.5.3 C#과 자바의 클래스 선언
____11.5.4 델파이(오브젝트 파스칼)의 클래스 선언
____11.5.5 HLA의 클래스 선언
____11.5.6 가상 메소드 테이블
____11.5.7 추상 메소드
____11.5.8 VMT 공유
____11.5.9 클래스의 상속
____11.5.10 클래스의 다형성
____11.5.11 다중 상속(C++)
__11.6 프로토콜과 인터페이스
__11.7 클래스, 객체, 성능
__11.8 참고 자료
12장. 산술 연산과 논리 연산
__12.1 산술식과 컴퓨터 아키텍처
____12.1.1 스택 기반 컴퓨터
____12.1.2 누산기 기반 컴퓨터
____12.1.3 레지스터 기반 컴퓨터
____12.1.4 산술식의 일반 형식
____12.1.5 3-주소 아키텍처
____12.1.6 2-주소 아키텍처
____12.1.7 구조적 차이와 코드
____12.1.8 복잡한 표현식
__12.2 산술문 최적화
____12.2.1 상수 접기
____12.2.2 상수 전달
____12.2.3 죽은 코드 제거
____12.2.4 공통 부분식 제거
____12.2.5 연산 대체
____12.2.6 귀납
____12.2.7 루프 불변
____12.2.8 최적화와 프로그래머
__12.3 산술식의 부수 효과
__12.4 부수 효과 포함: 시퀀스 포인트
__12.5 부수 효과로 인한 문제 방지
__12.6 계산 순서 강제 지정
__12.7 단축 연산
____12.7.1 부울식으로 단축 연산 사용
____12.7.2 단축 연산이나 완전 부울 연산 강제하기
____12.7.3 단축 연산과 완전 연산 효율성 비교
__12.8 산술 연산의 상대 비용
__12.9 참고 자료


13장. 제어 구조 및 프로그램 결정
__13.1 제어 구조가 프로그램의 효율성에 미치는 영향
__13.2 로우레벨 제어 구조 소개
__13.3 goto 문
____13.3.1 제한된 형식의 goto 문
__13.4 if 문
____13.4.1 특정 if/else 문의 효율성 향상
____13.4.2 if 문에서 완전 부울 연산 강제하기
____13.4.3 if 문에서 단축 연산 강제
__13.5 switch/case 문
____13.5.1 switch/case 문의 의미
____13.5.2 점프 테이블과 연속 비교
____13.5.3 switch/case 문의 기타 구현
____13.5.4 스위프트 switch 문
____13.5.5 switch 문에 대한 컴파일러 출력
__13.6 참고 자료


14장. 반복 제어 구조
__14.1 while 루프
____14.1.1 while 루프에서 완전 부울 연산 강제하기
____14.1.2 while 루프에서 단축 부울 연산 강제하기
__14.2 repeatuntil (dountil/dowhile) 루프
____14.2.1 repeatuntil 루프에서 완전 부울 연산 강제하기
____14.2.2 repeatuntil 루프에서 단축 부울 연산 강제하기
__14.3 foreverendfor 루프
____14.3.1 forever 루프에서 완전 부울 연산 강제하기
____14.3.2 forever 루프에서 단축 부울 연산 강제하기
__14.4 유한 루프(for 루프)
__14.5 참고 자료


15장. 함수와 프로시저
__15.1 간단한 함수와 프로시저 호출
____15.1.1 반환 주소 저장
____15.1.2 오버헤드의 다른 원인
__15.2 리프 함수와 프로시저
__15.3 매크로와 인라인 함수
__15.4 함수나 프로시저에 매개변수 전달
__15.5 활성화 레코드와 스택
____15.5.1 활성화 레코드 분석
____15.5.2 지역 변수에 오프셋 할당
____15.5.3 오프셋과 매개변수
____15.5.4 매개변수와 지역 변수에 액세스
____15.5.5 Rescue 레지스터
____15.5.6 자바 VM과 마이크로소프트 CLR 매개변수와 지역 변수
__15.6 매개변수 전달 메커니즘
____15.6.1 값에 의한 전달
____15.6.2 참조에 의한 전달
__15.7 함수 반환 값
__15.8 참고 자료

저자소개

랜달 하이드 [저] 신작알림 SMS신청
생년월일 -

최고의 어셈블리 언어 관련 서적인『The Art of Assembly Language』,『GREAT CODE 제1권』(모두 No Starch Press)의 저자다. 또한『Waite Group's MASM 6.0 Bible』의 공동 저자이기도 하다. 그는 닥터 돕스 저널(Dr.Dobb's Journal)과 바이트(Byte)지를 비롯한 여러 전문 잡지에 기고하고 있다.

저자의 다른책

전체보기
송주경 [역] 신작알림 SMS신청
생년월일 -

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

이 상품의 시리즈

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

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

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

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    0.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일내 상품을 받아 보실 수 있습니다.

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

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

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

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