Top

파이썬 객체지향 프로그래밍 4/e [다각도로 살펴보는 OOP 시스템]

  • 원서명Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, 4th Edition (ISBN 9781801077262)
  • 지은이스티븐 로트(Steven F. Lott), 더스티 필립스(Dusty Phillips)
  • 옮긴이김우현
  • ISBN : 9791161756547
  • 43,000원
  • 2022년 06월 30일 펴냄
  • 페이퍼백 | 820쪽 | 188*235mm
  • 시리즈 : 프로그래밍 언어

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/python-oop-4e

요약

객체지향의 기본 개념부터 시작해 객체지향 디자인을 포괄적으로 다룬다. 타입 힌트를 사용하는 방법, 클래스들 간의 다양한 관계를 활용해야 할 시기와 방법, 추상화 및 파이썬 데이터 구조를 통해 디자인을 단순화할 수 있는 기법, 빠르고 효율적인 파이썬의 내장 컬렉션을 다루는 이터레이터 패턴, 그리고 12가지 고급 디자인 패턴으로 견고한 애플리케이션을 개발하는 방법 등을 훌륭한 예제로 배울 수 있다. 또한 파이썬 애플리케이션을 자동화된 단위 테스트 모듈과 모의 객체를 사용해 쉽게 테스트할 수 있는 고급 테스트 기법도 배울 수 있다. 마지막으로 객체지향 디자인을 활용해 동시성 프로그래밍 기술을 사용하는 방법을 보여준다.

이 책에서 다루는 내용

◆ 클래스 생성 및 메서드 정의를 통한 파이썬 객체 구현
◆ 상속을 사용한 클래스 기능 확장
◆ 예외를 사용한 비정상적인 상황 처리
◆ 객체지향 기능을 사용해야 할 때와 사용하지 말아야 할 때에 대한 이해
◆ 널리 사용되는 몇 가지 디자인 패턴과 구현
◆ 단위 및 통합 테스트의 단순성 발견 및 테스트의 중요성
◆ 동적 코드에 대한 정적 타입 체크 방법
◆ asyncio를 이용한 동시성 프로그래밍 및 프로그램 속도 향상 방법

이 책의 대상 독자

이 책은 파이썬의 객체지향 프로그래밍을 처음 접하는 독자를 대상으로 한다. 파이썬에 대한 기초 지식이 있다고 가정한다. 다른 객체지향 프로그래밍 언어에 대한 배경 지식이 있는 독자를 위해 파이썬의 접근 방식이 갖는 독특한 특징을 설명할 것이다.
데이터 과학 및 데이터 분석에서 파이썬을 많이 사용하기 때문에 관련 수학과 통계 개념도 다룬다. 이 분야의 지식은 개념을 보다 구체적으로 적용하는 데 도움이 될 수 있다.

이 책의 구성

이 책은 전체적으로 네 부분으로 구성돼 있다. 처음 여섯 개의 장은 객체지향 프로그래밍의 핵심 원리와 개념을 설명하며 파이썬에서 이 개념들이 어떻게 구현되는지를 설명한다. 다음 세 개의 장에서는 객체지향 프로그래밍의 렌즈를 통해 파이썬 내장 기능을 자세히 살펴본다. 10장, 11장, 12장에서는 여러 가지 디자인 패턴과 이것을 파이썬에서 처리하는 방법을 살펴본다. 마지막 부분에서는 테스트와 동시성을 다룬다.

1장 ‘객체지향 디자인’에서는 객체지향 디자인의 기초가 되는 핵심 개념을 소개한다. 상태와 동작, 속성과 메서드, 객체를 클래스로 그룹화하는 방법 등에 대한 아이디어를 통해 로드맵을 제공한다. 캡슐화, 상속 및 구성 관계도 살펴볼 것이다. 사례 연구에서는 k-최근접 이웃(k-NN, k-Nearest Neighbors) 분류기를 구현하는 머신러닝 문제를 소개한다.
2장 ‘파이썬의 객체’에서는 파이썬에서 클래스 정의가 어떻게 동작하는지 보여준다. 여기에는 타입 힌트(type hints)라고 불리는 타입 주석(type annotations), 클래스 정의, 모듈, 패키지 등이 포함된다. 클래스 정의 및 캡슐화에 대한 실무적인 고려사항을 알려준다. 사례 연구에서는 k-NN 분류기의 일부 클래스를 구현해본다.
3장 ‘객체가 유사한 경우’에서는 클래스들이 서로 어떻게 연관돼 있는지 설명한다. 여기에는 상속 및 다중 상속의 사용법이 포함된다. 클래스 계층 구조에서 클래스 간의 다형성 개념을 살펴볼 것이다. 사례 연구에서는 가장 가까운 이웃을 찾는 데 사용되는 거리 계산을 위한 몇 가지 디자인을 살펴볼 것이다.
4장, ‘예상치 못한 상황을 예상하기’에서는 파이썬의 예외와 예외 처리에 대해 자세히 살펴본다. 내장 예외의 계층 구조도 다룬다. 또한 고유한 문제 도메인이나 애플리케이션을 반영하기 위해 고유한 예외를 정의하는 방법도 살펴볼 것이다. 사례 연구에서는 데이터 유효성 검사에 예외를 적용한다.
5장 ‘객체지향 프로그래밍의 사용 시기’에서는 디자인 기법에 대해 더 깊이 있게 다룬다. 이 장에서는 파이썬에서 프로퍼티(property)를 사용해 속성(attribute)을 구현하는 방법을 살펴볼 것이다. 또한 객체들의 컬렉션을 다루기 위한 관리자 객체의 일반적인 개념을 살펴본다. 사례 연구에서는 이런 아이디어를 적용해 k-NN 분류기를 폭넓게 구현한다.
6장 ‘추상 기본 클래스와 연산자 오버로딩’에서는 추상화에 대한 개념과 파이썬이 추상 기본 클래스를 지원하는 방법에 대해 깊이 있게 다룬다. 여기에는 공식적인 Protocol 정의 메소드와 덕 타이핑(duck typing)을 비교하는 것이 포함된다. 또한 파이썬의 내장 연산자를 오버로드하는 기법도 포함된다. 메타클래스와 이를 사용해 클래스 구조를 수정하는 방법도 살펴볼 것이다. 사례 연구에서는 추상화를 조심스럽게 사용해 디자인을 단순화하는 방법을 보여주기 위해 기존 클래스 중 일부를 재정의할 것이다.
7장, ‘파이썬 데이터 구조’에서는 다양한 파이썬 내장 컬렉션을 살펴볼 것이다. 이 장에서는 튜플, 딕셔너리, 리스트, 집합 등을 다룬다. 또한 데이터클래스와 명명된 튜플이 클래스의 여러 공통 기능을 제공함으로써 어떻게 디자인을 단순화 할 수 있는지 살펴본다. 사례 연구에서는 이런 새로운 기술을 사용하기 위해 이전의 일부 클래스 정의를 수정할 것이다.
8장 ‘객체지향과 함수형 프로그래밍의 교차점’에서는 클래스 정의가 아닌 파이썬 구조체(construct)를 살펴본다. 파이썬의 모든 것이 객체지향적이지만 함수 정의를 사용하면 클래스 정의의 복잡성을 피해 호출 가능한 객체를 생성할 수 있다. 또한 파이썬의 컨텍스트 관리자 구조체와 with 문을 살펴볼 것이다. 사례 연구에서는 클래스 복잡성을 피하는 대안적인 디자인을 살펴볼 것이다.
9장 ‘문자열, 직렬화, 파일 경로’에서는 객체를 문자열로 직렬화하는 방법과 문자열을 파싱해 객체를 생성하는 방법을 다룬다. 여기서는 Pickle, JSON, CSV 등을 포함한 여러 형식을 살펴볼 것이다. 사례 연구에서는 k-NN 분류기가 샘플 데이터를 로드하고 처리하는 방법을 다시 살펴본다.
10장 ‘이터레이터 패턴’에서는 반복 처리에 대한 파이썬의 보편적인 개념을 설명한다. 모든 내장 컬렉션은 반복 가능하며, 이 디자인 패턴은 파이썬 동작에서 핵심을 차지한다. 파이썬의 컴프리헨션(comprehension)과 제너레이터(generator) 함수도 살펴볼 것이다. 사례 연구에서는 제너레이터 표현식과 리스트 컴프리헨션을 사용해 학습 및 테스트 샘플을 분할하는 이전 디자인을 다시 살펴본다.
11장 ‘일반 디자인 패턴’에서는 몇 가지 일반적인 객체지향 디자인을 살펴본다. 여기에는 데코레이터(Decorator), 옵저버(Observer), 전략(Strategy), 커맨드(Command), 상태(State), 싱글톤(Singleton) 디자인 패턴이 포함된다.
12장 ‘고급 디자인 패턴’에서는 좀 더 발전된 객체지향 디자인을 살펴본다. 여기에는 어댑터(Adapter), 퍼사드(Façade), 플라이웨이트(Flyweight), 추상 팩토리(Abstract Factory), 컴포짓(Composite), 템플릿(Template) 패턴이 포함된다.
13장 ‘객체지향 프로그램 테스트’에서는 unittest와 pytest를 사용해 파이썬 애플리케이션을 위한 자동화된 단위 테스트 스위트를 제공하는 방법을 보여준다. 이를 통해 모의 객체를 사용해 테스트할 때 단위를 분리하는 것과 같은 고급 테스트 기법을 살펴볼 수 있다. 사례 연구에서는 3장에서 다뤘던 거리 계산에 대해서 테스트 케이스를 작성하는 것을 보여준다.
14장 ‘동시성’에서는 멀티코어 및 멀티프로세서 컴퓨터 시스템을 사용해 신속하게 계산을 수행하고 외부 이벤트에 응답하는 소프트웨어를 작성하는 방법을 살펴본다. 스레드와 멀티프로세싱뿐만 아니라 파이썬의 asyncio 모듈도 살펴볼 것이다. 사례 연구에서는 k-NN 모델에서 하이퍼파라미터 튜닝을 수행하기 위해 이런 기술을 사용하는 방법을 보여줄 것이다.

저자/역자 소개

지은이의 말

파이썬 프로그래밍 언어는 매우 인기가 있으며 다양한 애플리케이션에서 사용된다. 파이썬 언어는 작은 프로그램을 비교적 쉽게 만들 수 있도록 설계됐다. 보다 정교한 소프트웨어를 만들기 위해서는 여러 가지 중요한 프로그래밍 및 소프트웨어 디자인 기술이 필요하다.
이 책은 파이썬으로 프로그램을 만들기 위한 객체지향 접근법을 설명한다. 객체지향 프로그래밍의 용어를 소개하고 단계별 예제를 통해 소프트웨어 디자인 및 파이썬 프로그래밍을 학습한다. 개별 요소로부터 소프트웨어를 빌드하기 위해 상속과 구성 관계를 사용하는 법을 설명한다. 파이썬의 내장 예외 및 내장 데이터 구조는 물론 파이썬 표준 라이브러리의 요소들을 사용하는 방법을 보여준다. 다양한 디자인 패턴을 자세한 예제와 함께 설명한다.
이 책은 소프트웨어가 동작하는지 확인하기 위해 자동화된 테스트를 작성하는 방법도 다룬다. 또한 파이썬에서 제공하는 다양한 동시성 라이브러리를 사용하는 법을 보여준다. 이를 통해 컴퓨터에서 멀티코어 및 멀티프로세서를 사용할 수 있는 소프트웨어를 작성할 수 있다. 사례 연구를 통해서는 약간 복잡한 문제에 대한 여러 가지 솔루션을 보여주는 간단한 머신러닝 예제를 다룬다.

지은이 소개

스티븐 로트(Steven F. Lott)

컴퓨터가 크고 비싸며 드물던 때부터 프로그래밍을 해왔다. 수십 년 동안 첨단 기술 분야에서 일하면서 많은 아이디어와 기술을 접했다. 90년대부터 파이썬으로 다양한 도구와 애플리케이션을 개발해왔다. 『객체지향 파이썬 프로그래밍』(에이콘, 2017), 『모던 파이썬 쿡북』(에이콘, 2018), 『함수형 파이썬 프로그래밍』(에이콘, 2017)을 포함해 팩트출판사에서 많은 책을 썼다.

더스티 필립스(Dusty Phillips)

캐나다에서 활동하는 작가이자 소프트웨어 개발자다. 세계에서 가장 큰 정부, 세계에서 가장 큰 소셜 네트워크, 2인 창업 그리고 그 사이의 모든 곳에서 경력을 쌓았다. 이 책 외에도 『Creating Apps In Kivy』(O'Reilly, 2014)를 썼으며 현재 소설 쓰는 것에 집중하고 있다.

옮긴이의 말

이 책은 파이썬에서 객체지향 디자인을 활용해 견고하고 유지보수가 쉬운 애플리케이션을 개발하는 데 중점을 두고 설명한다. 모든 장에 걸쳐 있는 사례 연구는 아이리스 꽃 분류를 위한 머신러닝 애플리케이션을 개발하는 실제 프로젝트를 다루고 있어서 전체적인 맥락에서 각 주제를 일관성 있게 이해할 수 있도록 구성돼 있는 것이 장점이다. 또한 UML 다이어그램을 통해 디자인 패턴과 코드를 통합적으로 다루고 있는 것도 장점이다.
파이썬 3.5부터 타입 힌트가 도입됐지만 실무에서는 잘 사용되지 않았다. 하지만 이 책을 통해 타입 힌트를 사용하면 타입 힌트가 지속적인 유지보수에 얼마나 큰 기여를 하는지 알게 될 것이다. 유사한 기능을 가진 객체들에 대해 상속이나 구성 관계를 사용하는 방법과 파이썬의 편리한 특징 중 하나인 덕 타이핑(duck typing)의 유용함을 배울 수 있다.
객체지향을 사용해야 할 때가 언제인지, 그리고 사용하지 말아야 할 때가 언제인지를 다루는 부분은 이 책의 핵심 중 하나이다. 이 책의 가장 중요한 부분은 널리 사용되는 12가지 디자인 패턴과 이 패턴을 파이썬에서 구현하는 방법을 다루는 부분이라고 할 수 있다. 파이썬이 다른 언어에 비해 객체지향 디자인을 더 쉽고 우아하게 적용할 수 있다는 것을 알게 될 것이다.
객체지향 프로그래밍과 함수형 프로그래밍이 어떻게 다르고 어떤 부분에서 서로 만나는지 다루고 있는 부분은 매우 흥미롭다. 이 주제를 잘 이해하면 클래스의 복잡성으로 피할 수 있는 대안적인 디자인을 도입하는 데 도움이 될 것이다. 또 한 가지, 파이썬의 컴프리헨션(comprehension)과 제너레이터(generator) 함수는 코드를 단순화할 수 있는 훌륭한 방법이다. 파이썬의 내장 컬렉션이 얼마나 효율적인 도구인지 다시 한번 이해하게 될 것이다.
마지막으로 unittest와 pytest를 사용해 파이썬 애플리케이션을 위한 자동화된 단위 테스트 스위트를 제공하는 방법을 보여준다. 이렇게 자동화된 테스트를 사용하면 개발 프로젝트에서 상당히 많은 부하를 줄일 수 있다. 독자들도 파이썬의 자동화된 테스트에 익숙해지기를 바란다.
이 책은 파이썬이 얼마나 훌륭하고 사용하기 편한 개발 언어인지 잘 보여준다. 이 책에서 배운 기술을 활용해 파이썬 개발 프로젝트에서 많은 성과를 얻을 수 있을 것이다.

옮긴이 소개

김우현

대학생 시절, 선배와 함께 창업한 후 20년 넘게 소프트웨어 개발자로 살고 있으며 인공지능 분야에서 새로운 길을 만들어가고 있다. 숙명여자대학교 나노/바이오 전산화학 연구센터에서 데이터 과학자로 근무했으며, 현재 프리랜서 AI 개발자로 일하고 있다. 옮긴 책으로는 『R 데이터 구조와 알고리즘』(에이콘, 2017), 『자바 데이터 사이언스 쿡북』(에이콘, 2018), 『피처 엔지니어링, 제대로 시작하기』(에이콘, 2018), 『The Python 3 Standard Library by Example』(에이콘, 2020) 등이 있다.

목차

목차
  • 01장 객체지향 디자인
    • 객체지향 소개
    • 객체와 클래스
    • 속성과 동작 지정
      • 객체 상태를 설명하는 데이터
      • 동작은 행위이다
    • 정보 은닉과 공용 인터페이스 생성
    • 구성 관계
    • 상속
      • 추상화를 제공하는 상속
      • 다중 상속
    • 사례 연구
      • 문제 개요
      • 컨텍스트 뷰
      • 논리 뷰
      • 프로세스 뷰
      • 개발 뷰
      • 물리 뷰
      • 결론
    • 정리
    • 연습
    • 요약

  • 02장 파이썬의 객체
    • 타입 힌트 소개
      • 타입 검사
    • 파이썬 클래스 생성
      • 속성 추가
      • 동작 추가
      • 객체 초기화
      • 타입 힌트와 기본 인수
      • 독스트링을 이용한 코드 설명
    • 모듈과 패키지
      • 모듈 조직화
      • 모듈 내에서의 코드 조직화
    • 데이터 액세스 제어
    • 써드파티 라이브러리
    • 사례 연구
      • 논리 뷰
      • 샘플과 그 상태
      • 샘플의 상태 전환
      • 클래스 책임
      • TrainingData 클래스
    • 정리
    • 연습
    • 요약

  • 03장 객체가 유사한 경우
    • 기본 상속
      • 내장 클래스 확장
      • 재정의와 super
    • 다중 상속
      • 다이아몬드 문제
      • 다양한 인수 집합
    • 다형성
    • 사례 연구
      • 논리 뷰
      • 또 다른 거리 계산법
    • 정리
    • 연습
    • 요약

  • 04장 예상치 못한 상황을 예상하기
    • 예외 발생
      • 예외 발생시키기
      • 예외의 영향
      • 예외 처리
      • 예외 계층
      • 자체적인 예외 정의
      • 예외는 예외적인 것이 아니다
    • 사례 연구
      • 컨텍스트 뷰
      • 프로세스 뷰
      • 무엇이 잘못될 수 있는가?
      • 잘못된 동작
      • CSV 파일로부터 샘플 만들기
      • 열거형 값 검증
      • CSV 파일 읽기
      • 중복 배제
    • 정리
    • 연습
    • 요약

  • 05장 객체지향 프로그래밍의 사용 시기
    • 객체를 객체로 다루기
    • 프로퍼티로 클래스 데이터에 동작 추가
      • 프로퍼티 자세히 보기
      • 데코레이터 - 프로퍼티를 만드는 또 다른 방법
      • 프로퍼티를 사용해야 할 때
    • 관리자 객체
      • 중복 코드 제거
      • 실전
    • 사례 연구
      • 입력 데이터 검증
      • 입력 데이터 분할
      • Sample 클래스 계층
      • purpose 열거
      • 프로퍼티 세터
      • 반복되는 if 문
    • 정리
    • 연습
    • 요약

  • 06장 추상 기본 클래스와 연산자 오버로딩
    • 추상 기본 클래스 만들기
      • collections의 ABC
      • 추상 기본 클래스와 타입 힌트
      • collections.abc 모듈
      • 자체적인 추상 기본 클래스 만들기
      • 마법 파헤치기
    • 연산자 오버로딩
    • 내장 컬렉션 확장
    • 메타클래스
    • 사례 연구
      • 두 개의 하위 리스트로 리스트 클래스 확장
      • 분할을 위한 셔플링 전략
      • 분할을 위한 증분 전략
    • 정리
    • 연습
    • 요약

  • 07장 파이썬 데이터 구조
    • 빈 객체
    • 튜플과 명명된 튜플
      • typing.NamedTuple을 사용한 명명된 튜플
    • 데이터클래스
    • 딕셔너리
      • 딕셔너리 유스 케이스
      • defaultdict 사용
    • 리스트
      • 리스트 정렬
    • 집합
    • 세 가지 타입의 큐
    • 사례 연구
      • 논리 모델
      • 고정된 데이터클래스
      • NamedTuple 클래스
      • 결론
    • 정리
    • 연습
    • 요약

  • 08장 객체지향과 함수형 프로그래밍의 교차점
    • 파이썬 내장 함수
      • len() 함수
      • reversed() 함수
      • enumerate() 함수
    • 메서드 오버로딩의 대안
      • 매개변수의 기본값
      • 가변 인수 리스트
      • 인수 언패킹
    • 함수도 객체다
      • 함수 객체와 콜백
      • 함수를 사용한 클래스 패치
      • 호출 가능한 객체
    • 파일 입출력
      • 컨텍스트에 배치
    • 사례 연구
      • 프로세스 개요
      • 데이터 분할
      • 분류 재고찰
      • partition() 함수
      • 한 번에 분할하기
    • 정리
    • 연습
    • 요약

  • 09장 문자열, 직렬화, 파일 경로
    • 문자열
      • 문자열 조작
      • 문자열 포맷팅
      • 문자열은 유니코드이다
    • 정규표현식
      • 패턴 매칭
    • 정규표현식으로 정보 파싱
    • 파일시스템 경로
    • 객체 직렬화
      • 사용자 정의 피클
      • JSON을 사용한 객체 직렬화
    • 사례 연구
      • CSV 포맷 디자인
      • CSV 딕셔너리 리더
      • CSV 리스트 리더
      • JSON 직렬화
      • 줄바꿈으로 구분된 JSON
      • JSON 유효성 검사
    • 정리
    • 연습
    • 요약

  • 10장 이터레이터 패턴
    • 디자인 패턴이란
    • 이터레이터
      • 이터레이터 프로토콜
    • 컴프리헨션
      • 리스트 컴프리헨션
      • 집합 및 딕셔너리 컴프리헨션
      • 제너레이터 표현식
    • 제너레이터 함수
      • 다른 이터러블로부터 항목 산출
      • 제너레이터 스택
    • 사례 연구
      • 집합 빌더에 대한 배경지식
      • 다중 분할
      • 테스트
      • k-NN 필수 알고리듬
      • bisect 모듈을 사용하는 k-NN
      • heapq 모듈을 사용하는 k-NN
    • 결론
    • 정리
    • 연습
    • 요약

  • 11장 일반 디자인 패턴
    • 데코레이터 패턴
      • 데코레이터 패턴 예제
      • 파이썬의 데코레이터 패턴
    • 옵저버 패턴
      • 옵저버 패턴의 예
    • 전략 패턴
      • 전략 패턴의 예
      • 파이썬의 전략 패턴
    • 커맨드 패턴
      • 커맨드 패턴의 예
    • 상태 패턴
      • 상태 패턴의 예
      • 상태 패턴 대 전략 패턴
    • 싱글톤 패턴
      • 싱글톤 구현
    • 사례 연구
    • 정리
    • 연습
    • 요약

  • 12장 고급 디자인 패턴
    • 어댑터 패턴
      • 어댑터 패턴의 예
    • 퍼사드 패턴
      • 퍼사드 패턴의 예
    • 플라이웨이트 패턴
      • 파이썬에서 플라이웨이트 패턴의 예
      • 여러 메시지를 갖는 버퍼
      • 파이썬의 slots 를 이용한 메모리 최적화
    • 추상 팩토리 패턴
      • 추상 팩토리 패턴의 예
      • 파이썬의 추상 팩토리 패턴
    • 컴포짓 패턴
      • 컴포짓 패턴의 예
    • 템플릿 패턴
      • 템플릿 패턴의 예
    • 사례 연구
    • 정리
    • 연습
    • 요약

  • 13장 객체지향 프로그램 테스트
    • 왜 테스트를 해야 하는가
      • 테스트 주도 개발
      • 테스트 목표
      • 테스트 패턴
    • unittest로 단위 테스트하기
    • pytest로 단위 테스트하기
      • pytest의 설정 및 해제 기능
      • 설정 및 해제를 위한 pytest 픽스쳐
      • 더 정교한 픽스쳐
    • pytest에서 테스트 건너뛰기
    • Mock을 사용한 객체 모방
      • 추가 패치 기법
      • 센티넬 객체
    • 얼마나 해야 충분한 테스트인가?
    • 테스트와 개발
    • 사례 연구
      • 거리 계산 알고리듬 단위 테스트
      • Hyperparameter 클래스 단위 테스트
    • 정리
    • 연습
    • 요약

  • 14장 동시성
    • 동시 처리에 대한 배경지식
    • 스레드
      • 스레드의 많은 문제
    • 멀티프로세싱
      • 멀티프로세싱 풀
      • 멀티프로세싱의 문제점
    • Futures
    • AsyncIO
      • AsyncIO 실전
      • AsyncIO future 읽기
      • 네트워킹을 위한 AsyncIO
      • 로그 작성 데모
      • AsyncIO 클라이언트
    • 식사하는 철학자들 벤치마크
    • 사례 연구
    • 정리
    • 연습
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안