장바구니 담기 close

장바구니에 상품을 담았습니다.

The Go Programming Language

The Go Programming Language 에이콘 프로그래밍 언어 시리즈

  • 앨런도노반
  • |
  • 에이콘출판
  • |
  • 2016-02-29 출간
  • |
  • 400페이지
  • |
  • 188 X 255 X 21 mm /833g
  • |
  • ISBN 9788960778320
★★★★★ 평점(10/10) | 리뷰(1)
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책의 특징 ★

이 책은 전체 언어와 가장 중요한 패키지들, 넓은 범위의 애플리케이션을 다루는 수백 개의 흥미롭고 실용적인 예제를 Go 코드로 작성해 제공한다. 각 장에는 이해도를 테스트하고 예제의 확장과 대안을 알아보기 위한 연습문제들도 수록되어 있다. 소스코드는 http://gopl.io/에서 자유롭게 다운로드할 수 있으며, go get 명령으로 손쉽게 반입, 빌드, 설치할 수 있다.

★ 이 책의 구성 ★

1장은 파일 읽고 쓰기, 텍스트 포매팅, 이미지 생성, 인터넷 클라이언트와 서버 간 통신 등의 일상적인 작업을 수행하는 여러 프로그램을 통해 Go의 기본 구성 요소를 설명하는 튜토리얼이다.

2장은 Go 프로그램의 구조적 요소인 선언, 변수, 새로운 타입, 패키지, 파일, 범위 등을 설명한다. 3장은 숫자, 불리언, 문자열, 상수 및 유니코드를 처리하는 방법을 설명한다. 4장은 배열, 맵, 구조체, 슬라이스 등의 간단한 타입을 모으는 조합형 타입을 설명한다. 5장은 함수, 예외 처리, panic, recover, defer문을 설명한다.

따라서 1장에서 5장까지는 대부분이 널리 쓰이는 명령형 언어에 포함되는 기본적인 내용이다. 가끔 Go의 문법과 스타일이 그 외의 언어와 다를 때가 있지만, 대부분의 개발자는 빠르게 적응할 수 있을 것이다. 나머지 장들은 메소드, 인터페이스, 동시성, 패키지, 테스트, 리플렉션(reflection) 등에 대한 Go의 독특한 접근 방식에 초점을 맞춘다.

Go는 객체지향 프로그래밍에 독특한 접근 방식을 택했다. Go에는 클래스 계층은 물론 실제로 클래스 자체가 없다. 복잡한 객체의 행동은 상속이 아닌 간단한 객체의 조합으로 이뤄진다. 메소드는 구조체뿐만 아니라 임의의 사용자 정의 타입과 연관되며, 구상 타입과 추상 타입(인터페이스) 간의 관계가 묵시적이므로 구상 타입은 설계자가 사전에 고려하지 않은 인터페이스도 충족할 수 있다. 메소드는 6장에서, 인터페이스는 7장에서 다룬다.

8장은 CSP의 아이디어에 기반을 두며 고루틴과 채널로 구현된 Go의 동시성에 대한 접근 방식을 제시한다. 9장은 공유 변수를 이용하는 좀 더 전통적인 동시성에 대해 설명한다.

10장은 라이브러리를 구성하는 메커니즘인 패키지를 설명한다. 또한 컴파일, 테스트, 벤치마크, 프로그램 포매팅, 문서화, 기타 여러 작업을 수행하는 단일 명령인 go 도구를 효과적으로 사용하는 방법도 보여준다.

11장은 눈에 띄게 가벼운 접근 방식을 통해 추상화 기반 프레임워크를 간단한 라이브러리와 도구로 대체한 Go 테스팅을 다룬다. 테스트 라이브러리는 필요시 더 복잡한 추상화 단계를 구축할 수 있는 기초를 제공한다.

12장은 프로그램이 실행 중에 스스로의 상태를 살펴볼 수 있게 하는 리플렉션에 대해 알아본다. 리플렉션은 강력한 도구지만 주의 깊게 사용해야 한다. 또한 리플렉션이 중요한 일부 Go 라이브러리를 구현하는 데 어떻게 사용됐는지를 보여줌으로써 리플렉션의 적절한 균형에 대해 설명한다. 13장은 unsafe 패키지를 사용해 Go의 타입 시스템을 우회하는 저수준 프로그래밍의 어려운 세부 사항과 저수준 프로그래밍이 적합한 경우에 대해 설명한다.


목차


1장 튜토리얼
1.1 Hello, World
1.2 커맨드라인 인수
1.3 중복 줄 찾기
1.4 애니메이션 GIF
1.5 URL 반입
1.6 URL 동시 반입
1.7 웹 서버
1.8 미진한 부분

2장 프로그램 구조
2.1 이름
2.2 선언
2.3 변수
2.4 할당
2.5 타입 선언
2.6 패키지와 파일
2.7 범위

3장 기본 데이터 타입
3.1 정수
3.2 부동소수점 수
3.3 복소수
3.4 불리언
3.5 문자열
3.6 상수

4장 복합 타입
4.1 배열
4.2 슬라이스
4.3 맵
4.4 구조체
4.5 JSON
4.6 텍스트와 HTML 템플릿

5장 함수
5.1 함수 선언
5.2 재귀
5.3 다중 값 반환
5.4 오류
5.5 함수 값
5.6 익명 함수
5.7 가변 인자 함수
5.8 연기된 함수 호출
5.9 패닉
5.10 복구

6장 메소드
6.1 메소드 선언
6.2 포인터 수신자가 있는 메소드
6.3 내장 구조체를 통한 타입 조합
6.4 메소드 값과 표현식
6.5 예제: 비트 벡터 타입
6.6 캡슐화

7장 인터페이스
7.1 인터페이스 규약
7.2 인터페이스 타입
7.3 인터페이스 충족
7.4 flag.Value로 플래그 분석
7.5 인터페이스 값
7.6 sort.Interface로 정렬
7.7 http.Handler 인터페이스
7.8 error 인터페이스
7.9 예제: 표현식 평가기
7.10 타입 검증
7.11 타입 검증으로 오류 식별
7.12 인터페이스 타입 검증으로 동작 조회
7.13 타입 변환
7.14 예제: 토큰 기반 XML 디코딩
7.15 몇 마디 조언

8장 고루틴과 채널
8.1 고루틴
8.2 예제: 동시 시계 서버
8.3 예제: 동시 에코 서버
8.4 채널
8.5 병렬 루프
8.6 예제: 동시 웹 크롤러
8.7 select를 통한 다중화
8.8 예제: 동시 디렉토리 탐색
8.9 취소
8.10 예제: 채팅 서버

9장 공유 변수를 이용한 동시성
9.1 경쟁 상태
9.2 상호 배제: sync.Mutex
9.3 읽기/쓰기 뮤텍스: sync.RWMutex
9.4 메모리 동기화
9.5 게으른 초기화: sync.Once
9.6 경쟁 상태 검출
9.7 예제: 동시 넌블로킹 캐시
9.8 고루틴과 스레드

10장 패키지와 Go 도구
10.1 소개
10.2 임포트 경로
10.3 패키지 선언
10.4 Import 선언
10.5 공백 임포트
10.6 패키지 이름 짓기
10.7 Go 도구

11장 테스트
11.1 go test 도구
11.2 테스트 함수
11.3 범위
11.4 Benchmark 함수
11.5 프로파일
11.6 Example 함수

12장 리플렉션
12.1 왜 리플렉션인가?
12.2 reflect.Type과 reflect.Value
12.3 재귀 값을 출력하는 Display
12.4 예제: S- 표현식 인코딩
12.5 reflect.Value로 변수 설정
12.6 예제: S-표현식 디코딩
12.7 구조체 필드 태그 접근
12.8 타입의 메소드 표시
12.9 주의 사항

13장 저수준 프로그래밍
13.1 unsafe.Sizeof, Alignof, Offsetof
13.2 unsafe.Pointer
13.3 예제: 깊은 동등성
13.4 cgo를 통한 C코드 호출
13.5 기타 주의 사항

도서소개

★ 이 책의 특징 ★

이 책은 전체 언어와 가장 중요한 패키지들, 넓은 범위의 애플리케이션을 다루는 수백 개의 흥미롭고 실용적인 예제를 Go 코드로 작성해 제공한다. 각 장에는 이해도를 테스트하고 예제의 확장과 대안을 알아보기 위한 연습문제들도 수록되어 있다. 소스코드는 http://gopl.io/에서 자유롭게 다운로드할 수 있으며, go get 명령으로 손쉽게 반입, 빌드, 설치할 수 있다.

★ 이 책의 구성 ★

1장은 파일 읽고 쓰기, 텍스트 포매팅, 이미지 생성, 인터넷 클라이언트와 서버 간 통신 등의 일상적인 작업을 수행하는 여러 프로그램을 통해 Go의 기본 구성 요소를 설명하는 튜토리얼이다.

2장은 Go 프로그램의 구조적 요소인 선언, 변수, 새로운 타입, 패키지, 파일, 범위 등을 설명한다. 3장은 숫자, 불리언, 문자열, 상수 및 유니코드를 처리하는 방법을 설명한다. 4장은 배열, 맵, 구조체, 슬라이스 등의 간단한 타입을 모으는 조합형 타입을 설명한다. 5장은 함수, 예외 처리, panic, recover, defer문을 설명한다.

따라서 1장에서 5장까지는 대부분이 널리 쓰이는 명령형 언어에 포함되는 기본적인 내용이다. 가끔 Go의 문법과 스타일이 그 외의 언어와 다를 때가 있지만, 대부분의 개발자는 빠르게 적응할 수 있을 것이다. 나머지 장들은 메소드, 인터페이스, 동시성, 패키지, 테스트, 리플렉션(reflection) 등에 대한 Go의 독특한 접근 방식에 초점을 맞춘다.

Go는 객체지향 프로그래밍에 독특한 접근 방식을 택했다. Go에는 클래스 계층은 물론 실제로 클래스 자체가 없다. 복잡한 객체의 행동은 상속이 아닌 간단한 객체의 조합으로 이뤄진다. 메소드는 구조체뿐만 아니라 임의의 사용자 정의 타입과 연관되며, 구상 타입과 추상 타입(인터페이스) 간의 관계가 묵시적이므로 구상 타입은 설계자가 사전에 고려하지 않은 인터페이스도 충족할 수 있다. 메소드는 6장에서, 인터페이스는 7장에서 다룬다.

8장은 CSP의 아이디어에 기반을 두며 고루틴과 채널로 구현된 Go의 동시성에 대한 접근 방식을 제시한다. 9장은 공유 변수를 이용하는 좀 더 전통적인 동시성에 대해 설명한다.

10장은 라이브러리를 구성하는 메커니즘인 패키지를 설명한다. 또한 컴파일, 테스트, 벤치마크, 프로그램 포매팅, 문서화, 기타 여러 작업을 수행하는 단일 명령인 go 도구를 효과적으로 사용하는 방법도 보여준다.

11장은 눈에 띄게 가벼운 접근 방식을 통해 추상화 기반 프레임워크를 간단한 라이브러리와 도구로 대체한 Go 테스팅을 다룬다. 테스트 라이브러리는 필요시 더 복잡한 추상화 단계를 구축할 수 있는 기초를 제공한다.

12장은 프로그램이 실행 중에 스스로의 상태를 살펴볼 수 있게 하는 리플렉션에 대해 알아본다. 리플렉션은 강력한 도구지만 주의 깊게 사용해야 한다. 또한 리플렉션이 중요한 일부 Go 라이브러리를 구현하는 데 어떻게 사용됐는지를 보여줌으로써 리플렉션의 적절한 균형에 대해 설명한다. 13장은 unsafe 패키지를 사용해 Go의 타입 시스템을 우회하는 저수준 프로그래밍의 어려운 세부 사항과 저수준 프로그래밍이 적합한 경우에 대해 설명한다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.