HOME > Detail View

Detail View

(The) Go programming language

(The) Go programming language (Loan 12 times)

Material type
단행본
Personal Author
Donovan, Alan A. A. Kernighan, Brian W., 저 이승, 역 공용준, 감수
Title Statement
(The) Go programming language / 앨런 도노반, 브라이언 커니건 지음 ; 이승 옮김
Publication, Distribution, etc
서울 :   에이콘,   2016  
Physical Medium
406 p. : 삽화 ; 26 cm
Series Statement
에이콘 프로그래밍 언어 시리즈 = Programming language series
Varied Title
The Go programming language
ISBN
9788960778320 9788960777712 (Set)
General Note
원서총서표제: Addison-Wesley professional computing series  
감수: 공용준  
색인수록  
부록: Go 설치와 버전 관리  
Subject Added Entry-Topical Term
Go (Computer program language) Open source software --Programming
000 00000cam c2200205 c 4500
001 000045864767
005 20160314135253
007 ta
008 160314s2016 ulka 001c kor
020 ▼a 9788960778320 ▼g 94000
020 1 ▼a 9788960777712 (Set)
035 ▼a (KERIS)BIB000014003192
040 ▼a 211019 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.13/3 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b G573 2016
100 1 ▼a Donovan, Alan A. A.
245 1 1 ▼a (The) Go programming language / ▼d 앨런 도노반, ▼e 브라이언 커니건 지음 ; ▼e 이승 옮김
246 0 9 ▼a The Go programming language
260 ▼a 서울 : ▼b 에이콘, ▼c 2016
300 ▼a 406 p. : ▼b 삽화 ; ▼c 26 cm
440 0 0 ▼a 에이콘 프로그래밍 언어 시리즈 = ▼x Programming language series
500 ▼a 원서총서표제: Addison-Wesley professional computing series
500 ▼a 감수: 공용준
500 ▼a 색인수록
500 ▼a 부록: Go 설치와 버전 관리
650 0 ▼a Go (Computer program language)
650 0 ▼a Open source software ▼x Programming
700 1 ▼a Kernighan, Brian W., ▼e
700 1 ▼a 이승, ▼e
700 1 ▼a 공용준, ▼e 감수
740 2 ▼a Addison-Wesley professional computing series
900 1 0 ▼a 도노반, 앨런, ▼e
900 1 0 ▼a 커니건, 브라이언, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 G573 2016 Accession No. 121235934 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

이 책은 구글 Go 개발팀의 일원인 앨런 도노반과 C언어의 대가인 브라이언 커니건이 직접 쓴 책으로, Go의 언어적 특징과 표준 라이브러리를 활용해 깔끔하고 범용적이며 효율적인 프로그램을 개발하는 데 도움을 주고자 한다. 이 책을 통해 언어의 탄생 배경부터 문법, 동시성, 패키지, 테스팅 기법까지 Go의 진면모를 알 수 있을 것이다.

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

★ 요약 ★

Go를 배우고자 하는 모든 개발자를 위한 권위있는 『The Go Programming Language』 한국어판

이 책은 구글 Go 개발팀의 일원인 앨런 도노반과 C언어의 대가인 브라이언 커니건이 직접 쓴 책으로, Go의 언어적 특징과 표준 라이브러리를 활용해 깔끔하고 범용적이며 효율적인 프로그램을 개발하는 데 도움을 주고자 한다. 이 책을 통해 언어의 탄생 배경부터 문법, 동시성, 패키지, 테스팅 기법까지 Go의 진면모를 알 수 있을 것이다.

★ 이 책의 특징 ★

이 책은 전체 언어와 가장 중요한 패키지들, 넓은 범위의 애플리케이션을 다루는 수백 개의 흥미롭고 실용적인 예제를 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의 타입 시스템을 우회하는 저수준 프로그래밍의 어려운 세부 사항과 저수준 프로그래밍이 적합한 경우에 대해 설명한다.


Information Provided By: : Aladin

Author Introduction

브라이언 커니핸(지은이)

벨 연구소 유닉스 개발팀의 일원이며, 30년 동안 벨 연구소의 컴퓨팅 과학 연구 센터에서 일했다. 스크립트 언어인 Awk와 모델링 언어인 AMPL을 공동 개발했고, 문서 조판용 도구를 포함하여 다양한 유닉스 프로그램을 만들었다. 토론토 대학교에서 기초공학 학사 학위를, 프린스턴 대학교에서 전기공학 박사 학위를 받았다. 2000년부터 현재까지 프린스턴 대학교의 컴퓨터 과학과 교수로 재직 중이다. 『C 언어 프로그래밍』(휴먼싸이언스, 2016)과 『프로그래밍 수련법』(인사이트, 2008) 등 십여 권의 IT 서적을 공동 집필했다. 이외 저서로 『Hello, Digital World』(제이펍, 2017)가 있다.

앨런 도노반(지은이)

뉴욕에 위치한 구글 Go 팀의 일원이다. 캠브리지와 MIT에서 컴퓨터 과학 학위를 취득했으며, 1996년부터 업계에서 개발을 하고 있다. 2005년부터 구글의 인프라 프로젝트에서 근무했으며, 독자적인 빌드 시스템인 Blaze의 공동 설계자다. Go 프로그램의 수많은 정적 분석 라이브러리와 도구를 만들었으며, 그중에는 Oracle, GoDoc -analysis, GoRename 등이 있다.

이승(옮긴이)

인프라/플랫폼에 관심이 많은 개발자로, 현재 카카오에서 Kubernetes 기반 서비스를 개발하고 있다. 개발자로 은퇴하는 것이 목표다.

공용준(감수)

유명 인터넷 회사의 클라우드 기술팀 리딩을 맡고 있다. 클라우드 서비스와 데이터 분석에 필요한 기술을 연구, 개발해서 실제 서비스에 적용하는 것을 기쁨으로 살고 있다. 컴퓨팅 중소기업 발전을 위해 한국정보화진흥원 중소기업 기술 자문위원, 빅데이터/머신러닝 자문위원으로도 활동하고 있다. 2011년에 정통부 산하의 클라우드 정책 연구단 기술고문을 역임했다. 주요 저서로는 『카프카, 테이터 플랫폼의 최강자』(책만, 2018), 『클라우드 API를 활용한 빅데이터 분석』(에이콘, 2015), 『실전 클라우드 인프라 구축 기술』(한빛미디어, 2014)이 있다.

Information Provided By: : Aladin

Table of Contents

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 기타 주의 사항

New Arrivals Books in Related Fields

Ramamurthy, Bina (2021)
윤관식 (2020)