상세정보
미리보기
러닝 Go
- 저자
- 존 보드너 저/윤대석 역
- 출판사
- 한빛미디어
- 출판일
- 2022-03-15
- 등록일
- 2022-11-21
- 파일포맷
- PDF
- 파일크기
- 5MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
뚝딱거리지 않고 원래 Go 언어 개발자였던 것처럼 자연스럽게 코드 작성하기 Go 언어는 웹 서비스 개발자가 선호하는 언어로 빠르게 자리 잡고 있다. 다른 프로그래밍 언어로 개발한 경험이 있는 개발자들에게 Go 언어의 문법을 알려주는 튜토리얼은 많지만, 그것만으로는 부족하다. 이 책은 Go 언어를 이용해 명확하고 관용적으로 개발할 수 있도록 기초 지식을 전달하는 실용적인 가이드다. 개발 숙련도와는 상관없이 누구나 Go 언어 개발자처럼 생각할 수 있다. 더 나아가 경험이 풍부한 Go 개발자들이 채용한 디자인 패턴과 선택한 이유를 소개한다. 웹 서비스 관련 프로젝트에서 많이 활용되는 만큼, 견고한 웹 서비스를 제공하고 확장이 쉬운 코드로 개발하고 싶다면 Go 언어로 시작해보자.
저자소개
20년 이상의 경력을 가진 소프트웨어 엔지니어이자 리드 개발자이며 아키텍트를 담당하고 있다. 교육, 금융, 무역, 의료, 법, 정부, 인터넷 인프라 등 다양한 분야에서 소프트웨어 개발을 해왔다.
캐피탈 원(Capital One)에서 유명 엔지니어로서 개발 및 테스트 워크플로에 기여했으며 웹 결제 페이지 감지 및 작성을 위한 특허 기술을 개발했다. 소프트웨어 개발 이슈를 찾고 관리하기 위한 도구의 공동 저자이기도 하다.
Go 컨퍼런스에서 자주 발표하며, Go 및 소프트웨어 엔지니어링에 대한 블로그 게시물은 30만 뷰를 돌파했다. Go 전용 데이터 접근 라이브러리 프로테우스의 제작자이고, LGTM 프로젝트의 포크인 checks-out 도구의 공동 개발자이다.
목차
CHAPTER 1 GO 개발 환경 설정1.1 GO 도구 설치1.2 GO 작업 공간1.3 GO 명령어1.4 린팅 그리고 베팅1.5 개발 도구 소개1.6 Makefiles1.7 항상 최신으로 유지1.8 마무리CHAPTER 2 기본 데이터 타입과 선언2.1 내장 타입2.2 var Versus :=2.3 CONST 사용2.4 타입 지정 상수와 타입 미지정 상수2.5 사용하지 않는 변수2.6 변수와 상수 이름 짓기2.6 마무리CHAPTER 3 복합 타입3.1 배열3.2 슬라이스3.3 문자열과 룬 그리고 바이트3.4 맵3.5 구조체3.6 마무리CHAPTER 4 블록, 섀도, 제어 구조4.1 블록4.2 if 문4.3 for 문4.4 switch 문4.5 공백 switch 문4.6 if 문과 switch 문 중 선택4.7 goto 문4.8 마무리CHAPTER 5 함수5.1 함수 선언과 호출5.2 함수는 값이다5.3 클로저5.4 defer5.5 값에 의한 호출을 사용하는 Go5.6 마무리CHAPTER 6 포인터6.1 빠른 포인터 입문6.2 포인터를 두려워 말라6.3 포인터는 변경 가능한 파라미터를 가리킨다6.4 포인터는 최후의 수단6.5 포인터로 성능 개선6.6 제로 값과 값없음의 차이6.7 맵과 슬라이스의 차이6.8 버퍼 슬라이스6.9 가비지 컬렉션 작업량 줄이기6.10 마무리CHAPTER 7 타입, 메서드, 인터페이스7.1 Go의 타입7.2 메서드7.3 구성을 위한 임베딩 사용7.4 임베딩은 상속이 아니다7.5 인터페이스에 대한 간단한 지도7.6 인터페이스는 타입에 안정적인 덕 타이핑이다7.7 임베딩과 인터페이스7.8 인터페이스를 받고 구조체 반환하기7.9 인터페이스와 nil7.10 빈 인터페이스는 어떤 것도 표현하지 않는다7.11 타입 단언 및 타입 스위치7.12 타입 단언과 타입 스위치를 아껴 사용하기7.13 함수 타입은 인터페이스로의 연결7.14 의존성 주입을 쉽게 만드는 암묵적 인터페이스7.15 Wire7.16 GoO는 특히 객체지향이 아니다7.17 마무리CHAPTER 8 오류8.1 오류 처리 방법: 기초8.2 단순 오류에 문자열 사용8.3 센티넬 오류8.4 오류는 값이다8.5 오류 래핑8.6 Is와 As8.7 defer로 오류 래핑8.8 패닉과 복구8.9 오류에서 스택 트레이스 얻기8.10 마무리CHAPTER 9 모듈, 패키지 그리고 임포트9.1 저장소, 모듈 그리고 패키지9.2 go.mod9.3 패키지 빌드9.4 모듈 관련 작업9.5 모듈 게시9.6 모듈 버전 관리9.7 모듈을 위한 프록시 서버9.8 마무리CHAPTER 10 GO의 동시성10.1 동시성 사용 시점10.2 고루틴10.3 채널10.4 select 문10.5 동시성 사례와 패턴10.6 채널 대신에 뮤텍스를 사용해야 하는 경우10.7 원자적 연산10.8 마무리CHAPTER 11 표준 라이브러리11.1 입출력 관련 기능11.2 시간11.3 encoding/json11.4 net/http11.5 마무리CHAPTER 12 컨텍스트12.1 컨텍스트 소개12.2 취소12.3 타이머12.4 코드에서 컨텍스트 취소 처리12.5 값12.6 마무리CHAPTER 13 테스트 작성13.1 테스팅의 기초13.2 테이블 테스트13.3 코드 커버리지 확인13.4 벤치마크13.5 Go의 스텁13.6 httptest13.7 통합 테스트 및 빌드 태그13.8 레이스 검출기로 동시성 문제 찾기13.9 마무리CHAPTER 14 Reflect, Unsafe, Cgo14.1 리플렉션은 런타임에 동적으로 타입 제어14.2 불안전한 Unsafe14.3 성능이 아닌 통합을 위한 Cgo14.4 마무리CHAPTER 15 Go의 제네릭15.1 반복 코드를 줄이고 타입 안전 증가15.2 Go의 제네릭15.3 타입 목록을 사용하여 연산자 지정15.4 제네릭 함수는 알고리즘을 추상화한다15.5 타입 목록은 상수와 구현을 제한한다15.6 소외된 것15.7 관용적 Go와 제네릭15.8 이후 해제될 것들15.9 마무리