book.jayu.org
Go 언어 실전 테크닉

Go 언어 실전 테크닉

마츠키 마사유키 (지은이), Mattn (지은이), 후지와라 슌이치로 (지은이), 나카시마 다이치 (지은이), 마키 다이스케 (지은이), 스즈키 켄타 (지은이), 박현태 (옮긴이)

에이콘·2017-08-16

  • 278쪽
  • 0*0
  • 총류
  • KDC 005.133

로그인하면 내 서재에 추가할 수 있어요.

책 소개

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

목차펼치기

1장 Go를 이용한 팀 개발의 시작 방법과 코드를 작성하는 데 있어서의 마음가짐 1.1 개발 환경 구축 설치부터 $GOPATH 설정까지 개발 환경 구축 14 Go 설치 14 $GOPATH 설정 15 go get 시험해 보기 16 Go의 REPL인 gore를 사용 18 $GOPATH 관리를 위한 ghq 도입 19 peco로 간단하게 리포지터리 간 이동하기 20 Go로 만들어진 툴 설치 21 1.2 에디터와 개발환경 코드 포맷터, lint 툴에서 문서열람까지 Go와 에디터 23 Go에디터에 대한 사고방식 23 개발 지원 툴 24 코드 포맷터: gofmt 24 goimports 26 lint 툴: go vet과 golint 28 문서 열람 툴: godoc 29 그 밖의 툴: gorename, guru, gocode, godef, gotags 30 1.3 Go 시작하기 start a tour of Go 학습: Tour of Go 32 문서 읽기 32 프로젝트 시작하기 33 디렉토리명과 패키지명 33 디렉토리 구성 34 파일 분할 35 패키지 분할 35 서브 패키지의 임포트 방법 36 의존 관리: vendoring과 glide 37 glide novendor 38 태스크 러너로써 Makefile을 사용 38 1.4 Go답게 코드 작성하기 Go를 사용하고 싶다면 Go를 따르라 더욱 Go스러운 코드를 작성 42 panic사용 않고, error를 잘 반환, 에러 체크 확실히 하기 42 정규 표현을 피하고 strings 패키지를 사용 43 strings패키지 44 어쩔 수 없이 정규 표현을 사용하는 경우 44 map 피하기 45 reflect 피하기 48 거대한 struct 사용, 상속하지 않기 48 병렬처리의 과다 사용 피하기 48 Go 코드 읽기 49 테스트와 CI 49 빌드와 디플로이 49 모니터링 51 정리 52 2장 멀티 플랫폼에서 실행하는 사내 툴 만드는 방법 2.1 Go로 사내 툴을 만드는 이유 저마다 제각각인 건 당연한 일 다양한 환경에 대한 대응이 불가피 54 Go를 채용하는 장점 54 2.2 지켜야 할 암묵적인 규칙 OS 간의 이식을 미리 가정 적극적으로 path/filepath 사용하기 56 적극적으로 defer 사용하기 62 적극적으로 UTF-8을 다루기 67 2.3 TUI를 Windows에서 실행하기 termbox와 go-colorable 간단히 TUI 애플리케이션을 만드는 termbox 71 go-colorable의 사용법 73 2.4 OS 고유 처리에 대응 runtime.GOOS와 Builds Constraints runtime.GOOS를 사용 75 Build Constraints를 사용 76 파일명에 의한 지정 76 +build 주석에 의한 지정 77 pkg-config: 복잡한 컴파일 옵션에 대처 79 2.5 노력하기보단 주변 툴에 의존하기 하나의 애플리케이션에서는 하나의 처리만 Go 애플리케이션의 데몬화(化) 81 리눅스의 경우 82 유닉스의 경우 83 Windows의 경우 83 2.6 싱글 바이너리 go-bindata와 go-assets의 활용 Go는 싱글 바이너리 85 go-bindata를 사용 85 go-assets 사용 88 2.7 Windows 애플리케이션 만들기 다양한 사용자를 가정하기 Windows 애플리케이션을 만드는 방법 91 리소스 파일 링크하기 91 GUI를 만든다면 92 2.8 설정 파일 취급 멀티 플랫폼에서의 주의점 설정 파일 취급 시의 주의점 93 어떤 포맷으로 할까? 93 INI 파일 94 JSON 94 YAML 94 TOML 94 설정 파일을 어디에 둘까? 95 JSON을 잘 정리해서 출력하기 97 2.9 사내 툴, 그 이후 멀티 플랫폼 대응 애플리케이션의 장점 한 번 만들었다고 끝이 아니다 99 3장 실용적인 애플리케이션 만들기 3.1 머리말 실용적인 애플리케이션의 조건이란 실용적인 애플리케이션이란 102 어떠한 기능을 갖고 있는지를 쉽게 알 수 있을 것 102 성능이 좋은 것 103 다양한 입출력을 다룰 수 있는 것 103 인간이 다루기 쉬운 타입인 것 103 예외의 경우에 안전하게 동작을 정지시킬 수 있는 것 103 3장에서 소개하는 테크닉 104 3.2 버전 관리 사용자가 확인하기 쉽게 하기 버전 번호를 바이너리에 넣기 105 flag 패키지의 이용 105 셸 스크립트 106 go-latest로 최신 버전 체크 107 GitHub 태그 107 HTML 메타 태그 108 JSON API 109 3.3 효율적인I/O 처리 버퍼링, 콘텐츠 취득, 파일 저장 bufio로 입력을 버퍼링해서 다루기 110 bufio로 출력을 버퍼링하기 113 LL로 출력의 자동 버퍼링하기 113 Go에서는 자동 버퍼링은 하지 않는다 114 버퍼 크기 지정 118 go-isatty로 출력처가 단말기인지를 판별하기 118 여러 소스로부터 같은 콘텐츠 취득 121 콘텐츠 취득의 흐름 121 파일에서 얻기 123 HTTP(S) URL에서 얻기 123 Amazon S3에서 얻기 124 여러 출력처에 한번에 쓰기 125 로그 출력과 동시에 메모리에 보유해 이용하기 128 3.4 난수 다루기 math/rand, crypto/rand 난수 다루기 사례 130 난수를 취급하는 표준 패키지 130 math/rand 131 crypo/rand 131 3.5 인간이 다루기 쉬운 타입의 수치 go-humanize go-humanize 133 표기 변환과 파서?parser? 134 표기변환 134 파서 135 3.6 Go에서 외부 명령 실행하기 os/exec 패키지 활용 외부 커맨드를 실행하는 이점 136 os/exec 패키지 136 os/exec 패키지의 사례 137 외부 커맨드를 셸 경유로 기동하기(유닉스계열 환경) 140 3.7 타임아웃하기 패키지 기능의 이용과 직접 구현하기 사용하는 패키지에 타임아웃 기능이 준비된 경우 141 직접 타임아웃 구현 142 3.8 시그널 다루기 적절한 핸들링하기 Go로 시그널 다루기 145 독자적인 시그널 정의하기 148 3.9 goroutine의 정지 병렬 처리, 비동기 실행의 핸들링 goroutine을 외부에서 정지시키기 151 채널을 사용하는 방법 151 Context 패키지를 이용하는 방법 154 마무리 156 4장 커맨드 라인 툴 만들기 4.1 왜 Go로 CLI 툴을 만드는가? 3가지 장점 Go로 CLI 툴을 만드는 이유 158 배포의 용이성 158 다양한 플랫폼에 쉽게 대응 159 성능 159 라쿠텐의 사례 159 4.2 디자인 인터페이스와 리포지터리 구성 CLI 툴 인터페이스 161 싱글 커맨드 패턴 161 서브 커맨드 패턴 162 리포지터리 구성 163 바이너리를 메인 성과물로 할 경우 164 라이브러리를 메인 성과물로 할 경우 164 4.3 flag 패키지 커맨드 라인 옵션 활용하기 flag 패키지란 166 기본적인 사용 방법 166 몇 가지 테크닉 168 롱 옵션과 쇼트 옵션 168 환경 변수 169 어디에 기술할 것인가? 169 내부 구현과 커스터마이즈 170 flag.IntVar 구현 170 커스터마이즈하기 173 범용적인 사용 방법 174 한 번 더 flag.IntVar 구현 살펴보기 174 독자적인 타입 정의하기 176 서드 파티 패키지의 활용 178 spfl3/pflag 패키지 178 jessevdk/go-flags 패키지 179 alecthomas/kingpin 패키지 179 4.4 서브 커맨드를 가진 CLI 툴 서드 파티 패키지의 활용 서드 파티 패키지 소개 180 urfave/cli 181 spf13/cobra 181 docopt/docopt.go 182 mitchellh/cli 182 google/subcommands 183 mitchellh/cli의 사용방법 183 서브 커맨드의 정의 183 서브 커맨드 사용하기 185 서브 커맨드에 플래그 붙이기 187 4.5…

출처: 국립중앙도서관 서지정보

리뷰 남기기

로그인하면 리뷰를 남길 수 있어요.

리뷰 0개

아직 리뷰가 없어요.