본문 바로가기

추천 검색어

실시간 인기 검색어

[epub3.0] 객체에서 함수로

함수형 프로그래밍과 코틀린으로 실전 애플리케이션 개발하기
길벗

2025년 01월 08일 출간

국내도서 : 2024년 12월 20일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 ePUB (34.23MB)
ISBN 9791140712434
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

소득공제
소장
정가 : 30,400원

쿠폰적용가 27,360

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

실무에 가까운 웹 애플리케이션 프로젝트, 명확하고 간결한 실전 코틀린 코드로 도전하라.
함수형 사고 방식, 함수형 프로그래밍 방법 및 좋은 관행, 코틀린 프로젝트까지 한 권으로 집약했다!

이 책은 애플리케이션을 밑바닥부터 최종 완료할 때까지 완성해나가는 모습을 단계별로 보여준다. 이렇게 구성한 이유는 첫째, 개발 과정 전체에 함수형 접근 방식을 어떻게 적용하는지 더 넓은 관점에서 보여주기 위해서다. 둘째, 직접 만들어봐야 실제 함수형 프로그래밍을 제대로 배울 수 있기 때문이다. 이 책의 프로젝트는 테스트, 도메인 탐색, 함수형 프로그래밍을 사용해 견고하고 유연한 소프트웨어를 빠르게 구축하는 것이 목표다. 애플리케이션 개발의 전 과정을 함수형 디자인에 따라 점진적으로 진행하면서 모나드, 애플리커티브, 프로펑터 같은 고급 개념도 자연스럽게 다룰 것이다. 이 책의 개념과 의도를 완전히 이해하려면 직접 손을 움직여 코드를 공부하고 연습 문제를 풀어야 한다. 함수형 프로그래밍은 그냥 코드를 읽는 것만으로는 배울 수 없다. 가장 좋은 방법은 연습하는 것이다. 매 장마다 제시한 연습 문제들도 깃허브에서 힌트를 제공하고 있으니 지나치지 말고 도전해보자.
0장 왜 함수형 프로그래밍인가?
0.1 왜 코틀린인가?
0.2 함수형 프로그래밍의 진정한 의미는 무엇인가?
____재사용은 정말 과대평가된 것인가?
0.3 객체 지향 프로그래밍 지식을 일부러 잊어버리기
____대상과 동작에 집중하기보다 데이터 변환에 집중하기
____메서드 없는 객체 생성하기
____불필요한 인터페이스 피하기
____복잡한 제네릭 타입을 두려워하지 말자
0.4 요약

1장 애플리케이션 준비하기
1.1 예제 애플리케이션 정의하기
____새 제품 상상해보기
1.2 제타이: 혁신적인 할 일 목록 애플리케이션
____사용자 스토리 정의하기
____이벤트 스토밍을 통해 스토리 검증하기
____목업 준비하기
____요구 사항을 코드로 작성하기
1.3 테스트가 개발을 안내하게 하라
____지속 가능한 페이스로 생각하기
____디자인 방향을 이끌기
____올바름 보장하기
____여러 가지 유형의 테스트들
____테스트에 대한 두 가지 학파
1.4 프로젝트 설정하기
____테스트 라이브러리
1.5 단위 테스트를 함수형으로 만들기
____첫 번째 단위 테스트
____목을 사용하지 말라
1.6 요약
1.7 연습 문제
____연습 문제 1.1: 슈퍼마켓 이벤트 스토밍
____연습 문제 1.2: TDD로 할인 금액 계산하기
____연습 문제 1.3: 1씩 더해가는 테스트

2장 함수로 HTTP 다루기
2.1 프로젝트 시작하기
____작동하는 골격
2.2 HTML 페이지를 함수적으로 제공하기
____함수로서의 웹 서버
____Http4k 소개
____스파이크: 첫 번째 웹 페이지
____Http4k 도메인 특화 언어
____위험 관리
2.3 제타이 시작하기
____첫 번째 인수 테스트
____유비쿼터스 언어
____인수 테스트 실행
2.4 화살표로 디자인하기
____여러 함수 결합하기
2.5 맵으로부터 목록 제공하기
____응답 파싱하기
____스토리 완성하기
2.6 요약
2.7 연습 문제
____연습 문제 2.1: 함수 연쇄 호출
____연습 문제 2.2: 함수형 스택
____연습 문제 2.3: RPN 계산기

3장 도메인 정의 및 테스트
3.1 인수 테스트 개선하기
____부정적 사례 테스트
____시나리오 액터
____애플리케이션 파사드
____함수로 표현한 단계
3.2 고차 함수 사용하기
____순수 고차 함수
3.3 인프라에서 도메인 분리하기
____허브
____허브를 제타이에 연결하기
3.4 도메인에서 테스트 구동하기
____프로토콜
____인수 테스트를 DDT로 전환하기
3.5 DDT를 Pesticide로 변환하기
____시나리오
____액션과 프로토콜
____액터들
____단계
____Pesticide DDT로 전환하기
____애플리케이션 호출하기
____최종 테스트
3.6 요약
3.7 연습 문제
____연습 문제 3.1: 계산원 DDT
____연습 문제 3.2: 할인 DDT
____연습 문제 3.3: 결과로 함수 반환하기
____연습 문제 3.4: 템플릿 엔진

4장 도메인과 어댑터 모델링하기
4.1 목록을 수정하는 새 스토리 시작하기
____진행 중인 작업
____도메인 주도 테스트 과정
____액터 단계
____HTTP 액션 호출
____다른 페이지 처리하기
____CRUD 예제
____항목을 추가하는 경로
4.2 함수적 의존관계 주입 사용하기
____객체 지향 의존관계 주입과의 비교
____부분 적용
____허브에 항목 추가하기
____호출 가능한 클래스로서의 함수
____허브 밖에 목록 저장하기
____음성(부정적인 경우) 검사하기
____목록에 항목 추가하기
4.3 함수형 코드 디버깅하기
____의심이 된다면 출력하라
4.4 함수형 도메인 모델링
____낮은 카디널리티
____오류를 나타내도록 널 반환하기
____널의 문제
____속성 테스트
____타입 안의 널이 될 수 있는 필드
____더 나은 HTML
____HTML 파싱하기
____고차 함수 추출
4.5 요약
4.6 연습 문제
____연습 문제 4.1: DiscardUnless
____연습 문제 4.2: 널이 될 수 있는 함수 연쇄 호출하기
____연습 문제 4.3: 커링
____연습 문제 4.4: 호출 가능 객체

5장 이벤트를 사용해 상태 수정하기
5.1 할 일 목록 만들고 표시하기
____사용자 목록 페이지 만들기
____HTTP DDT로 전환
____도메인 전용 DDT 통과시키기
____사용자의 할 일 목록 페이지 생성하기
5.2 변경된 상태 저장하기
____이벤트 소싱
____불변 데이터로 상태 변경하기
____임시 가변성
____변경 가능한 지역 변수 제거하기
5.3 재귀의 힘 활용하기
____접을 수 있게 만들기
____왼쪽 접기와 오른쪽 접기
5.4 이벤트 접기
____유한 상태 기계 구현하기
____유니언 타입
____복합 타입의 카디널리티 계산하기
____상태 변경 정의하기
5.5 모노이드 알아보기
5.6 요약
5.7 연습 문제
____연습 문제 5.1: 재귀
____연습 문제 5.2: 접기
____연습 문제 5.3: 유니언 타입
____연습 문제 5.4: 모노이드

6장 커맨드 실행해서 이벤트 생성하기
6.1 새 목록 만들기
____새 목록을 만드는 DDT 추가하기
____HTML UI에 버튼 추가하기
____HTTP 핸들러에 경로 추가하기
6.2 커맨드를 사용해 상태 변경하기
____커맨드에서 이벤트 생성하기
6.3 상태와 이벤트로 도메인 모델링하기
____트랜잭션 엔티티
____엔티티 상태
____ToDoListEvent
____ToDoListState
6.4 함수형 상태 기계 작성하기
____이벤트 스토어
6.5 허브 연결하기
____읽기 모델
____목록에 항목 추가하기
6.6 커맨드와 이벤트 더 잘 이해하기
____변경 가능한 상태와 변경 불가능한 상태
____정체성과 엔티티
____이벤트 소싱 애플리케이션 지원
6.7 요약
6.8 연습 문제
____연습 문제 6.1: 엘리베이터를 상태 기계로 모델링하기
____연습 문제 6.2: 이벤트를 사용해 엘리베이터 상태 유지하기
____연습 문제 6.3: 고장 상태 추가하기

7장 함수형으로 오류 처리하기
7.1 오류를 더 잘 처리하기
____널로 오류 처리하기
____오류 반환하기
____예외를 예외적으로 유지하기
____함수형 오류 처리
7.2 펑터와 카테고리 배우기
____코드에서 카테고리 정의하기
7.3 코드에서 펑터 정의하기
____제네릭스는 타입 빌더다
____변환과 리프트
____펑터의 법칙
____펑터로 리스트 살펴보기
7.4 펑터를 사용해 오류 처리하기
____유니언 타입으로 오류 처리하기
7.5 결과 다루기
____실패 시 끝내기
____더 정확한 오류
____함수적 효과
____코드 정리하기
____결과 테스트하기
7.6 요약
7.7 연습 문제
____연습 문제 7.1: 펑터 합성하기
____연습 문제 7.2: 펑터 법칙 검증하기
____연습 문제 7.3: 실패 변환하기
____연습 문제 7.4: 예외 잡아내기

8장 펑터를 사용해 이벤트 투영하기
8.1 이벤트 투영하기
____첫 번째 투영 정의하기
____행 다루기
____맵에서 이벤트 투영하기
____첫 번째 투영
____투영 질의하기
8.2 펑터에서 질의 실행하기
____지연 계산 활용하기
____결과를 하나로 합치기
____fetcher 제거하기
8.3 펑터 관점에서 생각하기
____‘다음에 할 일’ 페이지 만들기
8.4 커맨드와 질의 책임 분리(CQRS)
8.5 요약
8.6 연습 문제
____연습 문제 8.1: 지연 계산
____연습 문제 8.2: 상태가 있는 함수
____연습 문제 8.3: 엘리베이터 투영

9장 모나드를 사용해 데이터를 안전하게 영속화하기
9.1 안전하게 영속화하기
____데이터베이스의 종류
____PostgreSQL과 통합 테스트하기
9.2 코틀린으로 데이터베이스에 연결하기
____이벤트 스토어용 테이블 스키마
____이벤트를 JSON으로 변환하기
____투영을 위한 테이블 스키마
____데이터베이스 준비
____효과와 부수 효과
____테이블에 읽고 쓰기
____Exposed 확장 프로그램
9.3 함수형 방식으로 원격 데이터에 접근하기
____컨텍스트 리더
____데이터베이스에 투영 저장하기
9.4 모나드의 힘 살펴보기
____엔도펑터
____모나드란 무엇인가?
____모나드가 아닌 것
____모나드 법칙
____Outcome 모나드
____리더 모나드
____타입 클래스와 인터페이스
____모나드에 대한 마지막 한마디
9.5 요약
9.6 연습 문제
____연습 문제 9.1: ContextReader에 대한 모나드 법칙
____연습 문제 9.2: join을 가지고 bind 구현하기

10장 커맨드 처리를 위해 컨텍스트 읽기
10.1 모나드로 데이터베이스에 접근하기
____EventStreamer와 ContextReader
____인메모리 이벤트 스트리머 다시 작성하기
____데이터베이스에 저장된 이벤트 스트림
10.2 컨텍스트 리더를 사용해 커맨드 처리하기
____모나드 변환기
____커맨드를 동시에 실행하기
____모두 함께 엮기
10.3 데이터베이스에서 투영 질의하기
____투영 영속화
____데이터베이스에서 투영 갱신
____unaryPlus 연산자를 사용한 DSL
____SQL로 질의 작성하기
____질의 핸들러 작성하기
10.4 이벤트 소싱을 통한 도메인 모델링
____상태 기계 정의하기
____이벤트 마이그레이션과 버전 관리
10.5 요약
10.6 연습 문제
____연습 문제 10.1: 로거 모나드
____연습 문제 10.2: 콘솔 모나드
____연습 문제 10.3: 콘솔 모나드 RPN 계산기

11장 애플리커티브로 데이터 검증하기
11.1 목록 이름 변경하기
____목록 이름 변경 커맨드
____목록 이름 변경 이벤트
____이름 변경 이벤트 투영하기
____잘못된 이름 변경 오류
____DDT 통과시키기
11.2 파라미터가 두 개인 함수 변환
____사용자 입력 검증
____오류 수집
11.3 검증을 통한 유효성 검사
____오류를 사용자에게 반환하기
____비지역 반환 제거하기
11.4 애플리커티브 펑터 결합하기
____순회
____시퀀스
____성능에 대한 경고
____순차적 적용
____중위 표기법
____애플리커티브 법칙
____모나드와 애플리커티브
____커맨드를 처리하는 패턴
11.5 사용자 인터페이스 개선하기
____함수형 템플릿 엔진
____더 나은 검증 오류 표시
11.6 요약
11.7 연습 문제
____연습 문제 11.1: 결과 축소하기
____연습 문제 11.2: 애플리커티브 컨텍스트 리더
____연습 문제 11.3: 목록 항목 편집하기
____연습 문제 11.4: 목록 항목 삭제하기

12장 모니터링과 함수형 JSON
12.1 애플리케이션 모니터링하기
____클라우드 모니터링 플랫폼
____함수형 로깅
____전통적인 로깅
____페퍼다인의 로깅 법칙
____테스트 주도 로깅
____스트림에 로그 남기기
____더 자세한 오류
____함께 연결하기
____되돌아보기
12.2 구조화된 로깅
____LogEntry
____LogContext
____JsonLogger
____컨텍스트 전달하기
12.3 JSON을 함수형으로 만들기
____KondorJson 라이브러리
____JSON 변환기
____12.4 프로펑터 소개
____반공변 펑터
____프로펑터
12.5 데이터베이스 호출 로깅
12.6 요약
12.7 연습 문제
____연습 문제 12.1: 모니터링 개선
____연습 문제 12.2: Klaxon 제거하기
____연습 문제 12.3: 사용자가 항목 순서를 변경할 수 있게 하기
____연습 문제 12.4: 새로운 목록 상태 도입

13장 함수형 아키텍처 디자인하기
13.1 단순성 추구
____모듈과 하위 도메인
____모듈로 빌드하기
____함수형 모듈화
____공유된 데이터 구조
____동기적 프로토콜과 비동기적 프로토콜
13.2 전체 시스템 디자인하기
____제타이 예제 사용하기
____진화
____멀티 모듈 애플리케이션
13.3 코드로 변환하기
____모노리포
____지속적 빌드와 통합
____배포 단위
13.4 마지막 고려 사항
13.5 연습 문제
____연습 문제 13.1: 최종 연습 문제

부록 A 함수형 프로그래밍이란 무엇인가?
A.1 기원
____람다 계산법
____참조 투명성
____카테고리 이론
A.2 참조 투명성 달성하기
____함수를 순수하게 유지하라
____가변 타입을 신뢰하지 마라
____가능한 입력을 모두 고려하라
A.3 사상으로 생각하기
____함수를 데이터로 취급하라
____타입을 정확하게 정의하라
____선언형 스타일을 선호하라
____게으름을 피워라
A.4 요약

부록 B 함수형 코틀린에 대하여
B.1 코틀린 설정하기
____그레이들
____Hello World
____자동 변환기
B.2 코틀린 개론
____임시 변수
____함수
____함수 타입
____Unit
____Nothing
____람다 변수
____확장 함수
____새로운 함수 반환하기
____영역 함수
____클래스
____객체와 동반 객체
____데이터 클래스
____위임을 통한 구현
____위임 프로퍼티
____타입 별명
____내부 가시성
____when
____봉인된 클래스
____봉인된 인터페이스
____tailrec 키워드
____시퀀스
B.3 코틀린 타입 시스템 탐구
____널이 될 수 있는 타입
____중위 함수
____연산자

부록 C 약간의 이론
C.1 카테고리 이론
____집합과 함수
____카테고리란 무엇인가?
____빈 카테고리
____모노이드
____Set 카테고리
____컴퓨터 언어 카테고리
____부분 카테고리
____다이어그램
C.2 모든 것은 사상에 관한 것이다
____동형사상
____시작 대상과 끝 대상
____반대 카테고리
C.3 타입에 대한 타입
____곱 타입과 쌍대곱 타입
____지수 타입
C.4 펑터는 매퍼다
____딸림 펑터
____엔도펑터
____자연 변환
C.5 신비한 모나드
____쌍대모나드(코모나드)
____클라이슬리 카테고리
C.6 요네다로 모든 것 연결하기
____hom 펑터
____반공변 펑터
____요네다 보조정리
C.7 결론

부록 D 추가 자료
D.1 프로그래밍
____코틀린
____함수형 프로그래밍
____TDD
D.2 카테고리 이론
____책
____블로그
____비디오

찾아보기

작가정보

열정 넘치는 프로그래머로, 오래 전 Zx스펙트럼(ZxSpectrum, 싱클레어 리서치가 영국에 출시한 8비트 PC)에서 비디오 게임을 처음 만들면서 프로그래밍을 시작했다. 아주 큰 회사부터 아주 작은 회사에 이르기까지 다양한 조직에서 일하면서 팀이 효율적이고 지속가능한 방식으로 소프트웨어를 구축해 회사에 가치를 창출하도록 코치하는 일을 해 왔다. 다양한 함수형 언어(하스켈, 클로저, 스칼라)를 사용했고 현재는 코틀린의 단순함과 생산성에 푹 빠져 있다. 전 세계에서 열리는 코틀린과 자바 컨퍼런스에 강사로 자주 참가하며, 젊은 프로그래머들의 멘토가 되는 것을 즐긴다./모빌리티42 이사로 일하면서 매일 고객의 요청에 따라 코드를 만드는 현업 개발자다. 『코틀린 함수형 프로그래밍』(에이콘, 2023) 등 코틀린 서적을 여러 권 번역했고, 코틀린 외에도 『실전 파이썬 핸즈온 프로젝트』(책만, 2022), 『읽고 나면 진짜 쉬워지는 자료 구조』(길벗, 2024) 등 다양한 프로그래밍 언어와 프로그래밍 기술에 대한 책을 번역했으며, 『핵심 코틀린 프로그래밍』(에이콘, 2023) 책을 쓴 저자이기도 하다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    [epub3.0] 객체에서 함수로 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    [epub3.0] 객체에서 함수로 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    [epub3.0] 객체에서 함수로
    함수형 프로그래밍과 코틀린으로 실전 애플리케이션 개발하기
    저자 모두보기
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)