HOME > 상세정보

상세정보

Go 언어 실전 테크닉 : Go 언어의 특징만 콕 집어 해설한

Go 언어 실전 테크닉 : Go 언어의 특징만 콕 집어 해설한 (10회 대출)

자료유형
단행본
개인저자
松木雅幸, 저 mattn, 저 藤原俊一郎, 저 中島大一, 저 牧大輔, 저 鈴木健太, 저 박현태, 역
서명 / 저자사항
Go 언어 실전 테크닉 : Go 언어의 특징만 콕 집어 해설한 / 마츠키 마사유키 [외]지음 ; 박현태 옮김
발행사항
서울 :   에이콘출판,   2017  
형태사항
278 p. : 삽화 ; 24 cm
총서사항
에이콘 프로그래밍 언어 시리즈
원표제
みんなのGo言語 : 現場で使える実践テクニック
ISBN
9791161750262 9788960777712 (세트)
일반주기
공저자: 후지와라 슌이치로, mattn, 나카시마 다이치, 마키 다이스케  
색인수록  
000 00000nam c2200205 c 4500
001 000045913720
005 20170830182909
007 ta
008 170830s2017 ulka 001c kor
020 ▼a 9791161750262 ▼g 94000
020 1 ▼a 9788960777712 (세트)
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h jpn
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b G573 2017
245 0 0 ▼a Go 언어 실전 테크닉 : ▼b Go 언어의 특징만 콕 집어 해설한 / ▼d 마츠키 마사유키 [외]지음 ; ▼e 박현태 옮김
246 1 9 ▼a みんなのGo言語 : ▼b 現場で使える実践テクニック
246 3 ▼a Minna no go gengo : ▼b Genba de tsukaeru jissen tekunikku
260 ▼a 서울 : ▼b 에이콘출판, ▼c 2017
300 ▼a 278 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a 에이콘 프로그래밍 언어 시리즈
500 ▼a 공저자: 후지와라 슌이치로, mattn, 나카시마 다이치, 마키 다이스케
500 ▼a 색인수록
700 1 ▼a 松木雅幸, ▼e
700 0 ▼a mattn, ▼e
700 1 ▼a 藤原俊一郎, ▼e
700 1 ▼a 中島大一, ▼e
700 1 ▼a 牧大輔, ▼e
700 1 ▼a 鈴木健太, ▼e
700 1 ▼a 박현태, ▼e
900 1 0 ▼a 마츠키 마사유키, ▼e
900 1 0 ▼a 후지와라 슌이치로, ▼e
900 1 0 ▼a 나카시마 다이치, ▼e
900 1 0 ▼a 마키 다이스케, ▼e
900 1 0 ▼a 鈴木健太, ▼e
900 1 0 ▼a Matsuki, Masayuki, ▼e
900 1 0 ▼a Fujiwara, Shun'ichiro, ▼e
900 1 0 ▼a Nakashima, Taichi, ▼e
900 1 0 ▼a Maki, Daisuke, ▼e
900 1 0 ▼a Suzuki, Kenta, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 G573 2017 등록번호 121241478 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

실전에서 Go 언어를 사용 중인 개발자들이 축적한 노하우를 바탕으로 Go 언어를 설명한다. 꼭 짚고 넘어가야 할 Go 언어의 특징에 대해서는 예제로 독자들의 이해를 최대한 높이기 위해 노력하고, 굳이 설명하지 않아도 되는 문법적인 요소는 과감히 생략했다. 팀 개발의 시작 방법부터 멀티 플랫폼에 대한 대응 및 애플리케이션 작성 테크닉, 커맨드 라인 툴 작성 노하우와 reflect/테스트 툴에 대해 배울 수 있다.

구글에 의해 개발된 가볍고 성능이 뛰어난 Go 언어, 이 책에서는 실전에서 Go 언어를 사용 중인 개발자들이 축적한 노하우를 바탕으로 Go 언어를 설명한다. 꼭 짚고 넘어가야 할 Go 언어의 특징에 대해서는 예제로 독자들의 이해를 최대한 높이기 위해 노력하고, 굳이 설명하지 않아도 되는 문법적인 요소는 과감히 생략했다. 이 책으로 Go 언어의 특징과 장점에 대해 이해시키고 프로그램을 개발하는 데 있어 Go 언어를 적재적소에 활용할 수 있도록 돕는다.

★ 이 책에서 다루는 내용 ★
■ 팀 개발의 시작 방법
■ 멀티 플랫폼에의 대응
■ 애플리케이션 작성 테크닉
■ 커맨드 라인 툴 작성
■ reflect/테스트 툴


정보제공 : Aladin

목차

1장. Go를 이용한 팀 개발의 시작 방법과 코드를 작성하는 데 있어서의 마음가짐 

__1.1 개발 환경 구축 - 설치부터 $GOPATH 설정까지 
____개발 환경 구축 
____Go 설치 
____$GOPATH 설정 
____go get 시험해 보기 
____Go의 REPL인 gore를 사용 
____$GOPATH 관리를 위한 ghq 도입 
____peco로 간단하게 리포지터리 간 이동하기 
____Go로 만들어진 툴 설치 

__1.2 에디터와 개발환경 
____코드 포맷터, lint 툴에서 문서열람까지 
____Go와 에디터 
____Go에디터에 대한 사고방식 
____개발 지원 툴 
____코드 포맷터: gofmt 
____goimports 
____lint 툴: go vet과 golint 
____문서 열람 툴: godoc 
____그 밖의 툴: gorename, 
____guru, gocode, godef, gotags 

__1.3 Go 시작하기 - start a tour of Go 
____학습: Tour of Go 
____문서 읽기 
____프로젝트 시작하기 
____디렉토리명과 패키지명 
____디렉토리 구성 
____파일 분할 
____패키지 분할 
____서브 패키지의 임포트 방법 
____의존 관리: vendoring과 glide 
____glide novendor 
____태스크 러너로써 Makefile을 사용 

__1.4 Go답게 코드 작성하기 - Go를 사용하고 싶다면 Go를 따르라 
____더욱 Go스러운 코드를 작성 
____panic사용 않고, error를 잘 반환, 에러 체크 확실히 하기 
____정규 표현을 피하고 strings 패키지를 사용 
____strings패키지 
____어쩔 수 없이 정규 표현을 사용하는 경우 
____map 피하기 
____reflect 피하기 
____거대한 struct 사용, 상속하지 않기 
____병렬처리의 과다 사용 피하기 
____Go 코드 읽기 
____테스트와 CI 
____빌드와 디플로이 
____모니터링 
____정리 


2장. 멀티 플랫폼에서 실행하는 사내 툴 만드는 방법 

2.1 Go로 사내 툴을 만드는 이유 - 저마다 제각각인 건 당연한 일 
__다양한 환경에 대한 대응이 불가피 
____Go를 채용하는 장점 

__2.2 지켜야 할 암묵적인 규칙 - OS 간의 이식을 미리 가정 
____적극적으로 path/filepath 사용하기 
____적극적으로 defer 사용하기 
____적극적으로 UTF-8을 다루기 

__2.3 TUI를 Windows에서 실행하기 - termbox와 go-colorable 
____간단히 TUI 애플리케이션을 만드는 termbox 
____go-colorable의 사용법 

__2.4 OS 고유 처리에 대응 - runtime.GOOS와 Builds Constraints 
____runtime.GOOS를 사용 
____Build Constraints를 사용 
____파일명에 의한 지정 
____+build 주석에 의한 지정 
____pkg-config: 복잡한 컴파일 옵션에 대처 

__2.5 노력하기보단 주변 툴에 의존하기 - 하나의 애플리케이션에서는 하나의 처리만 
____Go 애플리케이션의 데몬화(化) 
____리눅스의 경우 
____유닉스의 경우 
____Windows의 경우 

__2.6 싱글 바이너리 - go-bindata와 go-assets의 활용 
____Go는 싱글 바이너리 
____go-bindata를 사용 
____go-assets 사용 

__2.7 Windows 애플리케이션 만들기 - 다양한 사용자를 가정하기 
____Windows 애플리케이션을 만드는 방법 
____리소스 파일 링크하기 
____GUI를 만든다면 

__2.8 설정 파일 취급 - 멀티 플랫폼에서의 주의점 
____설정 파일 취급 시의 주의점 
____어떤 포맷으로 할까? 
____INI 파일 
____JSON 
____YAML 
____TOML 
____설정 파일을 어디에 둘까? 
____JSON을 잘 정리해서 출력하기 

__2.9 사내 툴, 그 이후 - 멀티 플랫폼 대응 애플리케이션의 장점 
____한 번 만들었다고 끝이 아니다 


3장. 실용적인 애플리케이션 만들기 

__3.1 머리말 - 실용적인 애플리케이션의 조건이란 
____실용적인 애플리케이션이란 
____어떠한 기능을 갖고 있는지를 
____쉽게 알 수 있을 것 
____성능이 좋을 것 
____다양한 입출력을 다룰 수 있을 것 
____인간이 다루기 쉬운 타입일 것 
____예외의 경우에 안전하게 동작을 
____정지시킬 수 있을 것 
____3장에서 소개하는 테크닉 

__3.2 버전 관리 - 사용자가 확인하기 쉽게 하기 
____버전 번호를 바이너리에 넣기 
____flag 패키지의 이용 
____셸 스크립트 
____go-latest로 최신 버전 체크 
____GitHub 태그 
____HTML 메타 태그 
____JSON API 

__3.3 효율적인I/O 처리 - 버퍼링, 콘텐츠 취득, 파일 저장 
____bufio로 입력을 버퍼링해서 다루기 
____bufio로 출력을 버퍼링하기 
____LL로 출력의 자동 버퍼링하기 
____Go에서는 자동 버퍼링은 하지 않는다 
____버퍼 크기 지정 
____go-isatty로 
____출력처가 단말기인지를 판별하기 
____여러 소스로부터 같은 콘텐츠 취득 
____콘텐츠 취득의 흐름 
____파일에서 얻기 
____HTTP(S) URL에서 얻기 
____Amazon S3에서 얻기 
____여러 출력처에 한번에 쓰기 
____로그 출력과 동시에 
____메모리에 보유해 이용하기 

__3.4 난수 다루기 - math/rand, crypto/rand 
____난수 다루기 사례 
____난수를 취급하는 표준 패키지 
____math/rand 
____crypo/rand 

__3.5 인간이 다루기 쉬운 타입의 수치 - go-humanize 
____go-humanize 
____표기 변환과 파서?parser? 
____표기변환 
____파서 

__3.6 Go에서 외부 명령 실행하기 - os/exec 패키지 활용 
____외부 커맨드를 실행하는 이점 
____os/exec 패키지 
____os/exec 패키지의 사례 
____외부 커맨드를 
____셸 경유로 기동하기(유닉스계열 환경) 

__3.7 타임아웃하기 - 패키지 기능의 이용과 직접 구현하기 
____사용하는 패키지에 
____타임아웃 기능이 준비된 경우 
____직접 타임아웃 구현 

__3.8 시그널 다루기 - 적절한 핸들링하기 
____Go로 시그널 다루기 
____독자적인 시그널 정의하기 

__3.9 goroutine의 정지 - 병렬 처리, 비동기 실행의 핸들링 
____goroutine을 외부에서 정지시키기 
____채널을 사용하는 방법 
____Context 패키지를 이용하는 방법 
____마무리 


4장. 커맨드 라인 툴 만들기 

__4.1 왜 Go로 CLI 툴을 만드는가? - 3가지 장점 
____Go로 CLI 툴을 만드는 이유 
____배포의 용이성 
____다양한 플랫폼에 쉽게 대응 
____성능 
____라쿠텐의 사례 

__4.2 디자인 - 인터페이스와 리포지터리 구성 
____CLI 툴 인터페이스 
____싱글 커맨드 패턴 
____서브 커맨드 패턴 
____리포지터리 구성 
____바이너리를 메인 성과물로 할 경우 
____라이브러리를 메인 성과물로 할 경우 

__4.3 flag 패키지 - 커맨드 라인 옵션 활용하기 
____flag 패키지란 
____기본적인 사용 방법 
____몇 가지 테크닉 
____롱 옵션과 쇼트 옵션 
____환경 변수 
____어디에 기술할 것인가? 
____내부 구현과 커스터마이즈 
____flag.IntVar 구현 
____커스터마이즈하기 
____범용적인 사용 방법 
____한 번 더 flag.IntVar 구현 살펴보기 
____독자적인 타입 정의하기 
____서드 파티 패키지의 활용 
____spfl3/pflag 패키지 
____jessevdk/go-flags 패키지 
____alecthomas/kingpin 패키지 

__4.4 서브 커맨드를 가진 CLI 툴 - 서드 파티 패키지의 활용 
____서드 파티 패키지 소개 
____urfave/cli 
____spf13/cobra 
____docopt/docopt.go 
____mitchellh/cli 
____google/subcommands 
____mitchellh/cli의 사용방법 
____서브 커맨드의 정의 
____서브 커맨드 사용하기 
____서브 커맨드에 플래그 붙이기 

__4.5 사용하기 쉽고, 운용보수하기에 쉬운 툴 - 서드 파티 패키지의 활용 
____사용하기 쉬운 툴 
____종료 스테이터스 코드 
____주의점 
____표준 출력과 표준 오류 출력 
____오류 메시지 
____운용보수하기에 쉬운 툴 
____Go의 CLI 테스트 테크닉 
____스테이터스 코드 테스트 
____출력 메시지 테스트 
____마무리 


5장. The Dark Arts Of Reflection 

__5.1 동적인 타입 판별 - 실행 때까지 타입 판별을 기다리기 
____타입 검출과 어써션 타입의 한계 

__5.2 reflect 패키지 - 타입 정보 얻기와 조작 
____reflect 패키지를 사용해 얻을 수 있는 정보 
____reflect.Value 
____타입보다 동작 바꾸기 
____map인 경우의 처리 
____struct인 경우의 처리 
____reflect.Type 
____struct 파스하기 

__5.3 reflect 사용 예 - 함정에 빠지지 않기 위한 대처방법 
____값을 동적으로 생성하기 
____보이는 범위, 보이지 않는 범위 
____포인터와 interface값 
____Set 가능한 값 
____reflect로 interface의 충족 여부 확인 
____동적인 select 문 구축 

__5.4 reflect 성능 정리 - 적재적소에 사용하기 
____reflect와 어써션 타입의 비교 
____reflect에 의한 sort 
____마무리 


6장. Go의 테스트 관련 툴 세트 

__6.1 Go의 테스트 방식 - ‘명시’와 ‘심플’ 
____소프트웨어 테스트 
____Go의 테스트 

__6.2 testing 패키지 입문 - 테스트 실행과 테스트 코드의 작성 
____테스트 실행 방법 
____Testable Examples 
____Unordered output 
____Exmaples를 godoc에 싣기 

__6.3 벤치 마크 입문 - 문자열 결합의 예로 배우기 
____벤치 마크 실행 방법 
____서브 벤치 마크 이용 

__6.4 테스트의 실전 테크닉 - 배열 플로우, 목업, 커버리지 
____Table Driven Tests 
____reflect.DeepEqual 사용하기 
____Race Detector를 이용해 
____충돌 상태 검출하기 
____TestMain으로 테스트 제어 
____Build Constraints를 이용한 테스트 전환 
____테스트의 변수 또는 함수의 대체 
____인터넷을 이용한 목업 
____net/http/httptest 패키지 
____테스트 커버리지 
____Go에서의 테스트 마무리

관련분야 신착자료