본문 바로가기

추천 검색어

실시간 인기 검색어

Go 마스터하기

acorn+PACKT 프로그래밍 언어
에이콘출판

2022년 12월 01일 출간

종이책 : 2022년 10월 31일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 pdf (36.47MB)
ISBN 9791161757049
듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 전자책 화면에 표기된 주석 등을 모두 읽어 줍니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
  • '교보 ebook' 앱을 최신 버전으로 설치해야 이용 가능합니다. (Android v3.0.26, iOS v3.0.09,PC v1.2 버전 이상)
소득공제
소장
정가 : 36,000원

쿠폰적용가 32,400

10% 할인 | 5%P 적립

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

카드&결제 혜택

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

작품소개

이 상품이 속한 분야

Go 언어에 관련한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머나 다른 프로그래밍 언어 경험이 있는 독자들을 대상으로 하는 책이다. Go 언어의 기본 개념부터 네트워크, 동시성, 테스트, gRPC, 제네릭 등의 주제들을 많은 실습 예제와 함께 소개한다. 3판에서는 2판에 비해 책의 두께를 줄였으며 더 자연스러운 흐름으로 재구성했다. 더 나은 Go 언어 개발자가 되고 싶다면 이 책이 도움을 줄 수 있을 것이다.
01장. Go의 간략한 소개
__Go 소개
____Go의 역사
____윈도우가 아니라 유닉스인 이유
____Go의 장점
____go doc과 godoc 유틸리티
__Hello World!
____함수 소개
____패키지 소개
__Go 코드 실행
____Go 코드 컴파일
____Go를 스크립트 언어처럼 사용
____중요한 형식과 코딩 규칙
__Go의 중요한 특성
____변수 선언과 사용
______변수 출력
____프로그램 흐름 제어
____for 루프와 range로 반복
____사용자 입력받기
____표준 입력 읽기
______커맨드라인 인수 사용
____에러 변수로 입력 타입 구분
____Go의 동시성 모델 이해
__Go로 which(1) 개발
__정보 로깅
____log.Fatal()과 log.Panic()
____커스텀 로그 파일 작성
____로그 항목에 줄 번호 츨력
__제네릭 개요
__기초적인 전화번호부 애플리케이션 개발
__연습문제
__요약
__참고 자료

02장. 기본 타입
__error 타입
__숫자 데이터 타입
__숫자가 아닌 데이터 타입
____문자열, 문자, 룬
______정수를 문자열로 변환
______unicode 패키지
______strings 패키지
____날짜와 시간
______날짜와 시간을 파싱하는 유틸리티
______타임 존 다루기
__Go 상수
____상수 생성기 iota
__비슷한 데이터 모으기
____배열
____슬라이스
______슬라이스 길이와 용량
______슬라이스의 일부분 선택
______바이트 슬라이스
______슬라이스에서 원소 삭제
______배열과 슬라이스의 관계
______copy() 함수
______슬라이스 정렬
__포인터
__난수 생성
____랜덤한 문자열 생성
____안전한 난수 생성
__전화번호부 애플리케이션 업데이트
__연습문제
__요약
__참고 자료

03장. 합성 데이터 타입
__맵
____nil 맵에 저장
____맵 반복
__구조체
____새 구조체 정의
____new 키워드 사용
____구조체의 슬라이스
__정규표현식과 패턴 매칭
____Go 정규표현식
____이름과 성 매칭
____정수 매칭
____레코드의 필드 매칭
__전화번호부 애플리케이션 개선
____CSV 파일 다루기
____인덱스 추가
____전화번호부 애플리케이션의 개선된 버전
__연습문제
__요약
__참고 자료

04장. 리플렉션과 인터페이스
__리플렉션
____Go 구조체의 내부
____리플렉션을 이용해 구조체 값 바꾸기
____리플렉션의 세 가지 단점
__타입 메서드
____타입 메서드 생성
____타입 메서드 사용
__인터페이스
____sort.Interface 인터페이스
____빈 인터페이스
____타입 단언과 타입 스위치
____map[string]interface{} 맵
____에러 타입
____나만의 인터페이스 만들기
______Go 인터페이스 사용
______3차원 형태 데이터에서 sort.Interface 구현
__두 가지 CSV 파일 포맷 다루기
__Go의 객체지향 프로그래밍
__전화번호부 애플리케이션 업데이트
____CSV 파일 값 설정
____sort 패키지 사용
__연습문제
__요약
__참고 자료

05장. 패키지와 함수
__Go 패키지
____Go 패키지 다운로드
__함수
____익명 함수
____여러 값을 반환하는 함수
____함수의 반환값에도 이름을 붙일 수 있다.
____함수를 매개변수로 받는 함수
____함수를 반환하는 함수
____가변 인수 함수
____defer 키워드
__Go 패키지 직접 만들기
____init() 함수
____실행 순서
__깃허브에 Go 패키지 저장
__데이터베이스를 다루는 Go 패키지
____데이터베이스 이해
____Go 패키지 저장
____Go 패키지의 설계
____Go 패키지 구현
____Go 패키지 테스트
__모듈
__Go 패키지를 잘 만드는 방법
__문서화
__깃랩 러너
____초기 설정 파일
____최종 설정 파일
__깃허브 액션
____깃허브에 시크릿 저장
____최종 설정 파일
__버전 부여
__연습문제
__요약
__참고 자료

06장. 유닉스 시스템에게 작업 지시
__stdin, stdout, stderr
__유닉스 프로세스
__유닉스 시그널 처리
____두 가지 시그널 처리
__파일 입출력
____io.Reader와 io.Writer 인터페이스
____io.Reader와 io.Writer의 사용과 오용
____버퍼를 이용한 파일 입출력과 버퍼를 이용하지 않는 파일 입출력
__텍스트 파일 읽기
____줄 단위로 텍스트 파일 읽기
____단어 단위로 텍스트 파일 읽기
____문자 단위로 텍스트 파일 읽기
____/dev/random 읽기
____파일에서 원하는 만큼만 데이터 읽기
__파일 쓰기
__JSON 데이터 다루기
____Marshal()과 Unmarshal()
____구조체와 JSON
____스트림 형태로 JSON 데이터 읽고 쓰기
____JSON 레코드 출력 다듬기
__XML 다루기
____JSON과 XML 변환
__YAML 다루기
__viper 패키지
____커맨드라인 플래그 사용
____JSON 설정 파일 읽기
__cobra 패키지
____세 개의 커맨드가 있는 유틸리티
____커맨드라인 플래그 추가
____커맨드 앨리어스 생성
____하위 커맨드 생성
__유닉스 파일 시스템에서 순환 참조 찾기
__Go 1.16의 새로운 기능
____파일 임베딩
____ReadDir과 DirEntry
____io/fs 패키지
__전화번호부 애플리케이션 업데이트
____cobra 사용
____JSON 데이터 저장하고 읽기
____delete 커맨드 구현
____insert 커맨드 구현
____list 커맨드 구현
____search 커맨드 구현
__연습문제
__요약
__참고 자료


07장. Go의 동시성
__프로세스, 스레드, 고루틴
__Go 스케줄러
____GOMAXPROCS 환경 변수
____동시성과 병렬성
__고루틴
____고루틴 생성
____고루틴 여러 개 생성
____고루틴이 끝날 때까지 기다리기
____Add()와 Done()의 호출 횟수가 일치하지 않는 경우
____고루틴으로 여러 파일 생성
__채널
____채널에 데이터 쓰고 읽기
____닫힌 채널에서 데이터 받기
____함수 매개변수로 지정한 채널
__경쟁 상태
____Go 경쟁 상태 감지기
__select 키워드
__고루틴 타임아웃
____main() 내부에서 고루틴 타임아웃
____main() 바깥에서 고루틴 타임아웃
__Go 채널 다시 보기
____버퍼 채널
____nil 채널
____워커 풀
____시그널 채널
______고루틴의 실행 순서 지정
__공유 메모리와 공유 변수
____sync.Mutex 타입
______뮤텍스를 해제하는 것을 잊어버렸을 경우
____sync.RWMutex 타입
____atomic 패키지
____고루틴으로 메모리 공유
__클로저 변수와 go 구문
__context 패키지
____context를 키/값 저장소로 사용
__semaphore 패키지
__연습문제
__요약
__참고 자료

08장. 웹 서비스 만들기
__net/http 패키지
____http.Response 타입
____http.Request 타입
____http.Transport 타입
__웹 서버 생성
__전화번호부 애플리케이션 업데이트
____API 정의
____핸들러 구현
__프로메테우스로 메트릭 노출
____runtime/metrics 패키지
____메트릭 노출
______Go 서버의 도커 이미지 생성
______메트릭 노출
____메트릭 읽기
____프로메테우스에 메트릭 넣기
____그라파나에서 프로메테우스 메트릭 시각화
__웹 클라이언트 개발
____http.NewRequest()를 사용해 클라이언트 개선
____전화번호부 서비스의 클라이언트 만들기
__파일 서버 만들기
____전화번호부 애플리케이션에서 다운로드하기
__HTTP 연결 타임아웃 설정
____SetDeadline() 사용
____클라이언트에서 타임아웃 설정
____서버에서 타임아웃 설정
__연습문제
__요약
__참고 자료

09장. TCP/IP와 웹소켓
__TCP/IP
____nc(1) 커맨드라인 유틸리티
__net 패키지
__TCP 클라이언트 개발
____net.Dial()을 이용한 TCP 클라이언트 개발
____net.DialTCP()를 이용해 TCP 클라이언트 개발
__TCP 서버 개발
____net.Listen()을 이용한 TCP 서버 개발
____net.ListenTCP()를 사용한 TCP 서버 개발
__UDP 클라이언트 개발
__UDP 서버 개발
__동시성 있는 TCP 서버 개발
__유닉스 도메인 소켓
____유닉스 도메인 소켓 서버
____유닉스 도메인 소켓 클라이언트
__웹소켓 서버 개발
____서버 구현
______websocat 사용
______자바스크립트 사용
__웹소켓 클라이언트 개발
__연습문제
__요약
__참고 자료

10장. REST API
__REST 소개
__RESTful 서버 및 클라이언트 개발
____RESTful 서버
____RESTful 클라이언트
__실제로 작동하는 RESTful 서버 개발
____REST API
____gorilla/mux
____서브라우터 사용
____데이터베이스 사용
____restdb 테스트
____RESTful 서버 구현
____RESTful 서버 테스트
______GET 핸들러 테스트
______POST 핸들러 테스트
______PUT 핸들러 테스트
______DELETE 핸들러 테스트
__RESTful 클라이언트
____커맨드라인 클라이언트 구조 갖추기
____RESTful 클라이언트 커맨드 구현
____RESTful 클라이언트 사용
____여러 REST API 버전 사용
__바이너리 파일 업로드와 다운로드
__REST API 문서화를 위한 스웨거
____REST API 문서화
____문서 파일 생성
____문서 파일 제공
__연습문제
__요약
__참고 자료

11장. 코드 테스팅과 프로파일링
__코드 최적화
__코드 벤치마킹
____더 나은 테스트를 위한 main() 함수 재작성
____쓰기 및 읽기 버퍼 벤치마킹
____benchstat 유틸리티
____잘못 작성한 벤치마크 함수
__코드 프로파일링
____커맨드라인 애플리케이션 프로파일링
____HTTP 서버 프로파일링
____Go 프로파일러의 웹 인터페이스
__go tool trace 유틸리티
____클라이언트에서 웹 서버 추적
____웹 서버의 모든 경로 방문
__Go 코드 테스트
____./ch03/intRE.go 테스트 작성
____TempDir() 함수
____CleanUp() 함수
____testing/quick 패키지
____테스트 타임아웃
____코드 커버리지 테스트
____도달할 수 없는 코드 찾기
__데이터베이스 백엔드를 갖춘 HTTP 서버 테스트
__퍼즈 테스트
__크로스컴파일
__go:generate
__예제 함수 생성
__연습문제
__요약
__참고 자료

12장. gRPC
gRPC 소개
____프로토콜 버퍼
__인터페이스 정의 언어 파일 작성
__gRPC 서버 개발
__gRPC 클라이언트 개발
____클라이언트를 이용한 gRPC 서버 테스트
__연습문제
__요약
__참고 자료

13장. 제네릭
__제네릭 소개
__제약 조건
____제약 조건 만들기
__제네릭을 이용한 데이터 타입 정의
____Go 구조체에서의 제네릭 사용
__인터페이스와 제네릭
__리플렉션과 제네릭
__연습 문제
__요약
__참고 자료

부록A. Go 가비지 컬렉터
__힙과 스택
__가비지 컬렉션
____삼색 알고리듬
____Go 가비지 컬렉터의 상세한 동작 방식
____맵, 슬라이스와 Go 가비지 컬렉터
______슬라이스 사용
______맵에 포인터 사용
______포인터를 사용하지 않는 맵 사용
______맵 나누기
____예제 성능 비교
__참고 자료

◈ 이 책에서 다루는 내용 ◈

◆ 실전에서의 Go 활용 방법
◆ 안정적이고 동시성을 지원하는 고성능 코드
◆ 슬라이스, 배열, 맵, 포인터 등의 데이터 구조
◆ 리플렉션과 인터페이스를 활용한 재사용 가능한 패키지 개발
◆ 효과적인 Go 프로그래밍을 위한 제네릭 활용
◆ 동시성 있는 RESTful 서버 및 gRPC 클라이언트와 서버 개발
◆ JSON 데이터를 이용하는 Go 구조체 정의

◈ 이 책의 대상 독자 ◈

Go에 관련한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머를 대상으로 한다. 다른 프로그래밍 언어에 대한 경험이 있는 상태에서 Go를 배우고 싶은 개발자도 기초를 볼 필요 없이 곧바로 Go를 익힐 수 있을 것이다.

◈ 이 책의 구성 ◈

1장, ‘Go의 간략한 소개’에서는 Go의 역사와 Go의 중요한 특징 및 장점부터 소개한다. Go doc과 go doc 유틸리티를 소개하고, Go 프로그램을 컴파일하고 실행하는 방법을 설명한다. 그런 다음엔 결과를 출력하는 방법과 사용자 입력을 받는 방법, 커맨드라인 인수를 다루는 방법, 로그 파일의 사용법을 다룬다. 마지막으로 전화번호부 애플리케이션의 기본 버전을 개발해보고 이후 장에서 이를 발전시켜 나간다.
2장, ‘기본 타입’에서는 Go의 기본 타입들을 알아보고 같은 데이터 타입들을 모아 사용할 수 있는 배열과 슬라이스도 알아본다. Go의 포인터, 상수, 날짜 및 시간을 다루는 방법도 알아보고 마지막에서는 난수를 생성해 전화번호부 애플리케이션의 데이터를 무작위 데이터로 채워본다.
3장, ‘합성 데이터 타입’에서는 맵, 구조체, struct 키워드를 살펴본다. 또한 정규표현식과 패턴 매칭, CSV 파일도 다룬다. 마지막으로 전화번호부 애플리케이션의 데이터가 영속적으로 저장되게 만든다.
4장, ‘리플렉션과 인터페이스’에서는 리플렉션, 인터페이스, 데이터 타입에 대한 함수인 타입 메서드를 다룬다. 또한 sort.Interface 인터페이스를 사용해 슬라이스를 정렬하는 방법, 빈 슬라이스, 타입 단언, 타입 스위치, error 데이터 타입 등을 다룬다. 그리고 Go에서 객체지향 개념을 흉내 내는 방법을 살펴보고 전화번호부 애플리케이션도 개선한다.
5장, ‘패키지와 함수’에서는 패키지의 주요한 원소인 패키지, 모듈, 함수를 다룬다. PostgreSQL 데이터베이스와 상호작용하는 패키지를 개발하고 문서화한다. 또한 defer 키워드를 설명하고 깃랩 러너와 깃허브 액션을 통한 자동화 및 Go 바이너리의 도커 이미지 생성도 알아본다.
6장, ‘유닉스 시스템’에게 작업 지시에서는 시스템 프로그래밍을 살펴본다. 다루는 주제는 커맨드라인 인수 받기, 유닉스 시그널 처리, 파일 입출력, io.Reader와 io.Writer 인터페이스, viper와 cobra 패키지 등이 포함돼 있다. 또한 JSON, XML, YAML 파일을 다루는 방법, 유닉스 파일 시스템에서 순환 참조를 찾는 방법, Go 바이너리에 파일 임베딩, os.ReadDir() 함수, os.DirEntry 타입, io/fs 패키지 등을 살펴본다. 마지막으로 cobra 패키지로 전화번호부 애플리케이션을 적절한 커맨드라인 유틸리티로 변환하고 JSON 데이터를 사용하게 개선한다.
7장, ‘Go의 동시성’에서는 고루틴, 채널, 파이프라인을 다룬다. 프로세스, 스레드, 고루틴의 차이점을 살펴보고, sync 패키지 및 Go 스케줄러의 동작 방식도 알아본다. 또한 select 키워드와 여러 종류의 Go 채널, 공유 메모리, 뮤텍스, sync.Mutex 타입, sync.RWMutex 타입도 알아본다. 그리고 context 패키지와 semaphore 패키지, 워커 풀, 고루틴 타임아웃, 경쟁 상태 감지 등도 소개한다.
8장, ‘웹 서비스 만들기’에서는 net/http 패키지, 웹 서버 및 웹 서비스 개발, 프로메테우스로 메트릭 노출, 그라파나로 메트릭 시각화, 웹 클라이언트 및 파일 서버 개발 등을 실습한다. 또한 전화번호부 애플리케이션을 웹 서비스로 변환하고 이를 위한 커맨드라인 클라이언트도 생성한다.
9장, ‘TCP/IP와 웹소켓’에서는 net 패키지, TCP/IP, TCP와 UDP 프로토콜, 유닉스 소켓, 웹소켓 프로토콜을 다룬다. 또한 많은 종류의 네트워크 서버와 클라이언트를 개발한다.
10장, ‘REST API’에서는 REST API와 RESTful 서비스를 다룬다. REST API를 정의해보고 동시성을 지원하는 RESTful 서버 및 RESTful 서비스의 클라이언트로 동작하는 커맨드라인 유틸리티를 개발한다. 마지막으로 REST API의 문서화를 위한 스웨거를 소개하고 바이너리 파일을 업로드 및 다운로드하는 방법도 알아본다.
11장, ‘코드 테스팅과 프로파일링’에서는 코드 테스팅, 코드 최적화, 코드 프로파일링, 크로스컴파일, Go 코드 벤치마킹, 예제 함수 만들기, go:generate의 사용법, 도달할 수 없는 Go 코드를 찾는 법 등을 다룬다.
12장, ‘gRPC’에서는 Go에서 gRPC를 다룬다. 또한 gRPC 서비스의 메서드와 메시지를 정의하는 방법을 살펴보고 이를 Go 코드로 어떻게 변환하는지 알아본 다음 gRPC 서비스의 서버 및 클라이언트를 개발한다.
13장, ‘제네릭’에서는 제네릭과 제네릭 함수를 작성하기 위한 문법, 제네릭 데이터 타입을 정의하는 방법을 알아본다.
부록 A, ‘Go 가비지 컬렉터’에서는 Go 가비지 컬렉터의 동작과 가비지 컬렉터가 코드의 성능에 끼치는 영향을 살펴본다.

작가정보

Mihalis Tsoukalos
기술 관련 글쓰기를 좋아하는 유닉스 시스템 엔지니어다. 『Go Systems Programming』(Packt, 2017)과 『Go 마스터하기』(에이콘, 2018), 『Go 마스터하기 2/e』(에이콘, 2021)의 저자이기도 하다. 파트라스대학교(University of Patras)에서 수학 학사 학위를 받았으며 유니버시티 칼리지 런던(University College London)에서 IT 관련 석사 학위도 받았다. 지금까지 「Sys Admin」, 「MacTech」, 「Linux User and Developer」, 「Usenix;login:」, 「Linux Format」, 「Linux Journal」 등의 여러 저널에 300여 편 이상의 글을 기고했다. 주요 관심 분야는 시계열, 데이터베이스, 인덱스다.
https://www.mtsoukalos.eu/와 @mactsouk에서 직접 만나볼 수 있다.

서울대학교 컴퓨터공학부를 졸업했다. 현재 당근마켓에서 소프트웨어 엔지니어로 근무하고 있으며, Go 언어를 이용해 각종 서비스들을 만들고 있다. 개발 관련 주제라면 밤새 떠들 수 있고, 소프트웨어 기술로 사람들의 문제를 해결하고 싶다. 취미로 수영하는 것을 즐긴다.

작가의 말

◈ 지은이의 말 ◈
뛰어난 Go 개발자가 되는 것을 돕기 위한 책이다. Go 언어 자체가 엄청나게 바뀐 것은 아니기 때문에 2판의 내용도 여전히 유용하다. 그렇지만 3판에서는 많은 부분을 개선했다.
RESTful 서비스 개발, 웹소켓 프로토콜, Go 프로젝트에서의 깃허브 액션 및 깃랩 러너 활용 등 새롭고 흥미로운 주제와 제네릭 관련 내용을 다룬 하나의 장 그리고 더욱 실용적인 예제를 추가했다. 2판보다 적은 페이지로 구성하려고 노력했다. 책의 구조 역시 더욱 자연스러운 흐름으로 재구성해 쉽고 빠르게 읽을 수 있게 했다.
또한 이론과 실습 관련 내용을 적절히 분배하고자 노력했다. 각 장의 끝에 배치된 연습문제는 꼭 풀어 보길 바란다.

◈ 옮긴이의 말 ◈
이제 Go 언어는 더 이상 새로운 언어가 아닙니다. 쿠버네티스(Kubernetes), 도커(Docker) 등 많은 중요한 소프트웨어 프로젝트가 Go 언어를 이용해 개발됐고, 특히 클라우드 네이티브 환경과 마이크로서비스 환경에서 사용했을 때 많은 장점이 존재합니다. 또한 미국의 빅테크 기업들에서도 Go 언어를 사용하고 있는 추세입니다.
국내에서도 점차 Go 언어를 도입하는 기업들이 늘어나고 있으며, 2022년 프로그래머스에서 실시한 설문조사에서 가장 배우고 싶은 언어 2위에 선정되는 등 국내에서도 Go 언어에 대한 관심이 높아지고 있습니다. 몇 년 뒤에는 국내에서도 Go 언어가 배워서 도입해보고 싶은 언어로 인식되는 것이 아니라 이미 사용되고 있는 대세 언어로 인식될 것이라 믿습니다.
이 책에서는 Go 언어에 대한 기초적인 내용부터 심화 주제까지 다양한 내용을 다루고 있습니다. 다른 프로그래밍 언어를 이미 알고 있는 독자들이라면 Go의 동시성을 다루는 7장을 주의 깊게 읽어 보기를 권장합니다. Go 언어의 동시성 개념을 잘 이해하면 Go 언어에 빨리 친숙해질 수 있을 것입니다. 또한 Go 언어를 활용해 RESTful 서비스가 아닌 gRPC 서비스를 만들어보는 12장을 특히 주의 깊게 읽어보면 Go 언어가 마이크로서비스 환경에서 어떻게 활용되고 있는지 엿볼 수 있습니다.

이 상품의 총서

Klover리뷰 (0)

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

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

문장수집

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

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

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

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

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

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    Go 마스터하기 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    Go 마스터하기 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    감성 태그

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

    사진 첨부(선택) 0 / 5

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

    신고/차단

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

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


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

    문장수집 작성

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

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

    P.
    Go 마스터하기
    저자 모두보기
    낭독자 모두보기
    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일)