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

객체지향 파이썬 : 파이게임과 GUI로 객체지향 프로그래밍 정복하기

원제 : Object-Oriented Python
소득공제

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

공유하기
  • 출판사 : 제이펍
  • 발행 : 2023년 10월 13일
  • 쪽수 : 452
  • ISBN : 9791192987347
정가

32,000원

  • 28,800 (10%할인)

    1,600P (5%적립)

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

  • 연관도서

  • 상품권

AD

책소개

강력하고 효율적이며 재사용 가능한 파이썬 코드

객체지향 패러다임은 코드와 데이터를 효과적으로 결합해 재사용성이 높은 코드를 만든다. 이 책은 객체지향 프로그래밍을 마스터할 수 있는 완벽한 안내서다. 클래스 구축 및 객체 생성의 기본 사항을 다루고, 객체지향 스타일을 시각화하는 데 도움이 되는 파이게임과 GUI를 사용하여 실습한다. 또한, 캡슐화, 다형성, 상속과 같은 객체지향 프로그래밍의 핵심 개념을 학습하고, 객체 중심으로 사고하고 코딩하는 방법을 배운다. 마지막에는 배운 내용을 모두 활용하여 애니메이션과 사운드를 갖춘, 온전한 하나의 게임을 완성해본다.

출판사 서평

게임을 만들며 시각적으로 익히는 객체지향 프로그래밍

파이썬 언어의 기본 문법을 공부했다면 본격적인 프로그래밍에 들어가기 전에 컴퓨터 프로그래밍의 패러다임에 대해 생각해볼 차례다. 이 책에서는 절차적 프로그래밍으로 작성된 몇 가지 예제로 프로그램의 복잡성을 인지한 후 객체지향 프로그래밍이 어떻게 더 간결하고 관리하기 쉽게 프로그램을 바꾸는지 살펴본다.

책의 가장 큰 특징은 파이게임과 GUI로 객체지향 사고를 시각적으로 표현한 데 있다. 코드로만 이해하기 어려운 부분을 시각적으로 표현하여 자연스럽게 객체지향 프로그래밍을 익히도록 구성했다. 초반부에서는 일상생활에서 접하기 쉬운 간단한 예제로 객체지향 프로그래밍의 핵심 요소를 배운다. 조명 스위치, TV 리모컨, 은행 시스템 시뮬레이션 등을 구성해보면서 클래스와 객체부터 객체 관리자 개념까지 객체지향 프로그래밍의 기본 개념을 이해한다. 중반부에서는 파이게임과 GUI로 이벤트 기반 프로그래밍을 실습한다. 공 튀기기 프로그램, 풍선 터뜨리기 게임 등을 만들면서 캡슐화, 다형성, 상속 등 객체지향 프로그래밍의 핵심을 익힌다. 후반부에서는 절차적 프로그래밍으로 만든 카드 게임을 객체지향 프로그래밍으로 재구성해보고, 슬라이더 퍼즐, 가위바위보, 회피 게임 등 애니메이션과 사운드까지 포함한 완성된 프로그램을 만들어본다.

파이썬 기초를 끝내고 작은 프로그램을 만들어봤다면 더 복잡하고 큰 프로그램을 만들고 싶을 것이다. 복잡한 로직을 구현하다 보면 좀 더 간결하고 효과적인 코드가 필요해진다. 코드와 데이터를 효율적으로 결합해 재사용할 수 있는 프로그램을 작성하게 해주는 객체지향 프로그래밍에 대해 배우고 싶다면 이 책을 읽어보자.


주요 내용
■ 캡슐화, 다형성, 상속 등 객체지향 프로그래밍의 핵심 요소 살펴보기
■ 객체 관리자 객체를 사용하여 여러 객체 생성 및 관리하기
■ 파이게임으로 GUI 프로그램 만들기
■ 캡슐화를 사용하여 클라이언트 코드에서 객체 내부의 세부 정보 숨기기
■ 다형성을 사용하여 하나의 인터페이스를 정의하고 여러 클래스에서 구현하기
■ 상속을 적용하여 기존 코드를 개선하기
■ 게임 개발에 객체지향 프로그래밍 활용하기

목차

옮긴이 머리말 xii
베타리더 후기 xiv
감사의 글 xvi
이 책에 대하여 xviii

PART I 객체지향 프로그래밍이란
CHAPTER 1 예제로 알아보는 절차적 파이썬 3
1.1 카드 게임 Higher or Lower 4
__1.1.1 데이터 표현하기 4 / 1.1.2 구현하기 4 / 1.1.3 재사용할 수 있는 코드 7
1.2 은행 계좌 시뮬레이션 7
__1.2.1 업무와 데이터 요구 사항 분석 8 / 1.2.2 구현 ⑴: 함수 없이 다루는 단일 계좌 8 / 1.2.3 구현 ⑵: 함수로 다루는 단일 계좌 10 / 1.2.4 구현 ⑶: 두 계좌 13 / 1.2.5 구현 ⑷: 리스트로 다루는 다중 계좌 15 / 1.2.6 구현 ⑸: 딕셔너리로 다루는 계좌 목록 17
1.3 절차적 구현이 겪는 공통 문제 20
1.4 객체지향적 해결책: 첫 클래스 보기 21
1.5 정리 22

CHAPTER 2 OOP로 물체 모델링하기 23
2.1 소프트웨어로 물체 모델링하기 23
__2.1.1 상태와 행동: 조명 스위치 예 24
2.2 클래스와 객체 25
2.3 클래스, 객체, 객체의 생성 27
__2.3.1 파이썬 클래스 코드 작성 28 / 2.3.2 스코프와 인스턴스 변수 29 / 2.3.3 함수와 메서드의 차이 30 / 2.3.4 클래스로 객체 생성하기 31 / 2.3.5 객체의 메서드 호출하기 32 / 2.3.6 같은 클래스로 여러 객체 생성하기 33 / 2.3.7 클래스로 구현된 파이썬의 데이터 유형 35 / 2.3.8 객체 정의 36
2.4 조금 더 복잡한 클래스 정의하기 36
2.5 훨씬 더 복잡한 현실적인 물체를 클래스로 표현하기 39
__2.5.1 메서드에 매개변수 전달하기 44 / 2.5.2 여러 객체 다루기 46 / 2.5.3 매개변수의 초기화 48
2.6 클래스의 활용 사례 50
2.7 객체지향적 해결책 51
2.8 정리 51

CHAPTER 3 객체의 멘털 모델과 SELF의 의미 53
3.1 DimmerSwitch 클래스 되돌아보기 54
3.2 높은 수준의 멘털 모델 55
3.3 더 깊은 멘털 모델 56
3.4 self의 의미 59
3.5 정리 62

CHAPTER 4 여러 객체 관리 63
4.1 은행 계좌 클래스 63
4.2 클래스 코드 불러오기 66
4.3 테스트 코드 작성 68
__4.3.1 여러 계좌 생성하기 68 / 4.3.2 리스트로 여러 Account 객체 관리 71 / 4.3.3 식별자를 둔 여러 객체 73 / 4.3.4 대화형 메뉴 구성 75
4.4 객체를 관리하는 객체 만들기 78
__4.4.1 객체를 관리하는 객체 빌드 80 / 4.4.2 객체를 관리하는 객체 생성 메인 코드 83
4.5 예외 처리로 오류 잘 다루기 84
__4.5.1 try와 except 85 / 4.5.2 raise 문과 사용자가 정의한 예외 85
4.6 은행 프로그램에 예외 처리 적용하기 87
__4.6.1 예외 처리를 품은 Account 클래스 87 / 4.6.2 최적화된 Bank 클래스 89 / 4.6.3 예외를 처리하는 메인 코드 91
4.7 여러 객체를 담은 리스트에 동일한 메서드 호출하기 93
4.8 인터페이스 vs. 구현 94
4.9 정리 95

PART II 파이게임과 GUI
CHAPTER 5 파이게임 시작하기 99
5.1 파이게임 설치하기 100
5.2 윈도우 세부 사항 101
__5.2.1 윈도우의 좌표 시스템 101 / 5.2.2 픽셀 색상 104
5.3 이벤트 기반 프로그램 105
5.4 파이게임 사용하기 107
__5.4.1 빈 윈도우를 화면에 띄우기 107 / 5.4.2 이미지 그리기 111 / 5.4.3 마우스 클릭 감지하기 114 / 5.4.4 키보드 다루기 117 / 5.4.5 위치 기반 애니메이션 생성하기 121 / 5.4.6 파이게임의 rect 사용하기 124
5.5 소리 재생하기 127
__5.5.1 소리 효과 재생하기 127 / 5.5.2 배경음악 재생하기 128
5.6 도형 그리기 129
__5.6.1 기본 도형의 종류 132
5.7 정리 134

CHAPTER 6 객체지향 파이게임 135
6.1 객체지향 파이게임으로 튕기는 공 화면 보호기 만들기 135
__6.1.1 공 클래스 정의하기 136 / 6.1.2 Ball 클래스 사용하기 138 / 6.1.3 여러 Ball 객체 생성 139 / 6.1.4 수많은 Ball 객체 생성하기 141
6.2 객체지향적으로 재사용 가능한 버튼 만들기 142
__6.2.1 버튼 클래스 정의하기 142 / 6.2.2 SimpleButton 클래스를 사용하는 메인 코드 145 / 6.2.3 여러 버튼을 가진 프로그램 만들기 146
6.3 객체지향적으로 재사용 가능한 텍스트 출력용 클래스 만들기 148
__6.3.1 텍스트를 출력하는 절차 알아보기 148 / 6.3.2 SimpleText 클래스 정의하기 149
6.4 SimpleText와 SimpleButton으로 데모 프로그램 만들기 150
6.5 인터페이스 vs. 구현 153
6.6 콜백 153
__6.6.1 콜백 만들기 154 / 6.6.2 SimpleButton에 콜백 적용하기 155
6.7 정리 158

CHAPTER 7 파이게임의 GUI 위젯 159
7.1 함수 또는 메서드로 매개변수 전달하기 159
__7.1.1 위치 기반 또는 키워드 기반 매개변수 161 / 7.1.2 키워드 매개변수에 의미 부여하기 162 / 7.1.3 기본값으로 None 사용하기 163 / 7.1.4 기본값과 키워드 선정하기 165 / 7.1.5 GUI 위젯의 기본값 165
7.2 pygwidgets 패키지 165
__7.2.1 설정하기 166 / 7.2.2 전체적인 설계 167 / 7.2.3 이미지 추가하기 168 / 7.2.4 버튼, 체크 박스, 라디오 버튼 추가하기 169 / 7.2.5 텍스트 출력과 입력 172 / 7.2.6 pygwidgets이 제공하는 다양한 클래스 175 / 7.2.7 pygwidgets을 활용한 예제 프로그램 176
7.3 일관된 API의 중요성 177
7.4 정리 177

PART III 캡슐화, 다형성, 상속
CHAPTER 8 캡슐화 181
8.1 함수로 캡슐화해보기 182
8.2 객체를 통한 캡슐화 182
__8.2.1 pygwidgets이 제공하는 또 다른 클래스 183
8.3 캡슐화에 대한 견해 184
__8.3.1 직접 접근이란 무엇이고 왜 피해야 하는가 184 / 8.3.2 게터와 세터에 대한 엄격한 견해 189 / 8.3.3 안전한 직접 접근 190
8.4 인스턴스 변수를 더 비공개적으로 만들기 191
__8.4.1 묵시적인 비공개 191 / 8.4.2 명시적인 비공개 192
8.5 데커레이터와 @property 193
8.6 pygwidgets 클래스로 캡슐화 살펴보기 197
8.7 실제 사례로 캡슐화 살펴보기 197
8.8 추상화 199
8.9 정리 202

CHAPTER 9 다형성 203
9.1 현실 속 물체로 알아보는 메시지 보내기 204
9.2 프로그래밍에서 사용하는 고전적인 다형성 예시 204
9.3 파이게임의 도형을 사용한 예 206
__9.3.1 Square 클래스 206 / 9.3.2 Circle과 Triangle 클래스 208 / 9.3.3 도형을 생성하는 메인 프로그램 211 / 9.3.4 패턴 확장하기 213
9.4 다형성에 기초한 pygwidgets 213
9.5 연산자와 다형성 214
__9.5.1 매직 메서드 215 / 9.5.2 비교 연산자 매직 메서드 216 / 9.5.3 매직 메서드를 품은 Rectangle 클래스 218 / 9.5.4 매직 메서드를 사용하는 메인 프로그램 220 / 9.5.5 산술 연산자 매직 메서드 222 / 9.5.6 벡터 223
9.6 객체 값을 표현하는 문자열 생성하기 225
9.7 매직 메서드를 품은 Fraction 클래스 228
9.8 정리 231

CHAPTER 10 상속 233
10.1 객체지향의 상속 234
10.2 상속 구현하기 236
10.3 Employee와 Manager 클래스로 상속 알아보기 237
__10.3.1 기반 클래스: Employee 237 / 10.3.2 하위 클래스: Manager 238 / 10.3.3 테스트 코드 240
10.4 클라이언트 관점에서 바라본 하위 클래스 241
10.5 상속의 실제 예 242
__10.5.1 InputNumber 클래스 243 / 10.5.2 DisplayMoney 클래스 245 / 10.5.3 사용 예 248
10.6 동일 기반 클래스를 상속하는 다양한 클래스 251
10.7 추상 클래스와 메서드 256
10.8 pygwidgets이 상속을 사용하는 방식 260
10.9 계층적 클래스 262
10.10 상속을 활용한 프로그래밍의 어려움 264
10.11 정리 265

CHAPTER 11 객체가 사용하는 메모리 관리 267
11.1 객체의 생명 주기 267
__11.1.1 참조 카운트 268 / 11.1.2 가비지 컬렉션 275
11.2 클래스 변수 275
__11.2.1 상수용 클래스 변수 276 / 11.2.2 숫자를 세기 위한 클래스 변수 277
11.3 풍선 프로그램으로 여러 개념 종합하기 278
__11.3.1 상수 모듈 280 / 11.3.2 메인 프로그램 코드(클라이언트) 281 / 11.3.3 풍선 관리자 283 / 11.3.4 Balloon 클래스와 객체 286
11.4 메모리 관리 기법: 슬롯 289
11.5 정리 291

PART IV 게임 개발에 객체지향 프로그래밍 사용하기
CHAPTER 12 카드 게임 295
12.1 Card 클래스 296
12.2 Deck 클래스 299
12.3 Higher or Lower 게임 301
__12.3.1 메인 프로그램(클라이언트) 301 / 12.3.2 Game 클래스 303
12.4 __name__으로 테스트하기 306
12.5 다른 유형의 카드 게임 308
__12.5.1 블랙잭용 카드 덱 308 / 12.5.2 보편적이지 않은 카드 덱을 사용하는 게임 309
12.6 정리 309

CHAPTER 13 타이머 311
13.1 타이머 사용 프로그램 312
13.2 타이머를 구현하는 세 가지 방식 313
__13.2.1 프레임 수 세기 313 / 13.2.2 타이머 이벤트 314 / 13.2.3 경과 시간을 계산해 타이머 만들기 315
13.3 pyghelpers 설치하기 318
13.4 Timer 클래스 318
13.5 화면에 시간 출력하기 321
__13.5.1 CountUpTimer 322 / 13.5.2 CountDownTimer 325
13.6 정리 326

CHAPTER 14 애니메이션 327
14.1 애니메이션 클래스 구현하기 328
__14.1.1 SimpleAnimation 클래스 328 / 14.1.2 SimpleSpriteSheetAnimation 클래스 333 / 14.1.3 두 클래스 병합하기 337
14.2 pygwidgets 패키지의 Animation 클래스 338
__14.2.1 Animation 클래스 338 / 14.2.2 SpriteSheetAnimation 클래스 340 / 14.2.3 공통 기반 클래스: PygAnimation 342 / 14.2.4 애니메이션 예제 프로그램 343
14.3 정리 344

CHAPTER 15 장면 345
15.1 상태 머신 알아보기 346
15.2 파이게임으로 상태 머신 예제 프로그램 만들기 348
15.3 여러 장면을 관리하는 장면 관리자 354
15.4 장면 관리자를 사용한 예제 프로그램 355
__15.4.1 메인 프로그램 357 / 15.4.2 장면 구성하기 359 / 15.4.3 기본 장면 363
15.5 장면을 사용한 가위바위보 게임 364
15.6 장면 간 상호작용하기 369
__15.6.1 원하는 장면의 정보 요청하기 370 / 15.6.2 원하는 장면에 정보 보내기 370 / 15.6.3 모든 장면에 정보 보내기 371 / 15.6.4 장면 간 상호작용 테스트하기 372
15.7 장면 관리자 구현하기 372
__15.7.1 run() 메서드 374 / 15.7.2 메인 메서드 375 / 15.7.3 장면 간 상호작용하기 377
15.8 정리 379

CHAPTER 16 완전한 게임 ‘다저’ 만들기 381
16.1 모달 다이얼로그 381
__16.1.1 예/아니오 및 경고 다이얼로그 382 / 16.1.2 응답 다이얼로그 386
16.2 ‘다저’라는 완전한 게임 만들기 388
__16.2.1 게임 개요 388 / 16.2.2 게임 구현하기 389 / 16.2.3 게임 확장하기 410
16.3 정리 411

CHAPTER 17 디자인 패턴과 마무리 413
17.1 MVC 413
__17.1.1 파일 디스플레이로 살펴보는 MVC 414 / 17.1.2 통계 데이터 디스플레이로 살펴보는 MVC 415 / 17.1.3 MVC 패턴의 장점 420
17.2 마무리 421

찾아보기 423

본문중에서

이 책은 소프트웨어 제작을 절차적 방식과는 다른 시각인 객체지향 프로그래밍(object-oriented programming, OOP) 패러다임으로 다룬다. OOP는 코드와 데이터를 결합하는 방식으로 소프트웨어를 만드는 방법을 제시한다. 절차적 프로그래밍에서 일부 생길 수 있는 복잡성을 피할 수 있다. (3쪽)

매우 간단한 예제 프로그램이다. 이처럼 작은 단위의 함수로 시작하면 OOP로 쉽게 전환할 수 있게 해준다. 1장의 설명처럼 상태는 전역변수 switchIsOn으로 표현돼 앞 코드는 단일 조명 스위치에만 작동한다. 하지만 재사용 가능한 코드를 만드는 것이 함수를 작성하는 목적이다. 앞 코드를 OOP 방식으로 다시 작성해보겠다. 먼저 재작성할 코드를 충분히 이해할 수 있도록 관련 이론을 먼저 살펴보자. (25쪽)

이 책의 목적은 독자를 게임 프로그래머로 만드는 것이 아니다. OOP 방법을 더욱 명확하게 시각적으로 확인할 수 있는 환경을 구축하고자 파이게임을 활용한다. 파이게임을 사용해 윈도우에 객체를 시각적으로 출력한다. 사용자와 객체의 상호작용을 처리하는 과정을 보면서 효과적인 객체지향 사용 방법을 깊이 이해할 수 있을 것이다. (99쪽)

OOP의 세 가지 주요 개념 중 첫 번째로 살펴볼 것은 캡슐화(encapsulation)다. 캡슐화라고 하면 귀중한 내용물을 외부 환경에서 보호하는 우주 캡슐, 세포벽, 의약품 젤라틴 캡슐 같은 이미지를 연상시킨다. 프로그래밍에서 말하는 캡슐화도 비슷한데, 훨씬 더 구체적인 의미를 가진다. 상태 및 내부 작동 방식의 세부 사항에 담은 모든 코드를 한곳에 보관하고 이를 외부에 감추는 것을 의미한다. (181쪽)

다양한 조명을 제어하는 스위치 더미로 가득 찬 방을 상상해보자. 일부 전구는 구식 백열전구, 다른 일부는 형광등, 또 다른 일부는 최신 LED 전구로 구성됐다. 모든 스위치를 위로 올리면 모든 전구에 ‘켜기’라는 메시지를 보낸다. 백열등, 형광등, LED 전구는 각자 매우 다른 방식으로 빛을 만들지만 사용자가 작동시키는 방법은 ‘스위치를 켜는 행위’로 모두 같다. (204쪽)

플레이어는 윈도우 상단에서 출현하는 빨간 악당을 피해야 한다. 악당은 조금씩 화면 아래로 움직인다. 게임 플레이 영역의 하단에 도달하는 악당은 소멸한다. 이때 플레이어는 점수를 획득한다. 플레이어는 마우스로 주인공 아이콘을 움직인다. 주인공 아이콘이 악당과 부딪치면 게임은 끝이 난다. 가끔 초록 보상이 무작위로 등장해 수평으로 움직인다. 초록 보상을 먹으면 25점을 획득한다. (388쪽)

관련이미지

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

    리뷰

    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, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

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

    (주)KG이니시스 결제대금예치업 등록번호: 02-006-00013

    (주)인터파크커머스는 회원님들의 안전거래를 위해 구매금액, 결제수단에 상관없이 (주)인터파크커머스를 통한
    모든 거래에 대하여 (주)KG이니시스가 제공하는 구매안전서비스를 적용하고 있습니다.
    등록 여부는 e-금융민원센터 홈페이지(www.fcsc.kr)의 등록·신고>전자금융업등록현황 메뉴에서 확인하실 수 있습니다. 서비스 가입사실 확인

    배송안내

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

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

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

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

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