CONTENTS
목차
읽음 표시는 직접 선택하며 자동 완료되지 않습니다.
- 01Go 시작하기 - 모듈과 첫 프로그램
go 설치 확인, go mod init, go run·go build, 패키지와 import, gofmt·go vet
- 02변수·상수·기본 타입 - 제로값이 있는 언어
var·:=, 제로값, int·float64·string·bool·rune, 명시적 형 변환, const·iota
- 03제어문 - for 하나로 모든 반복
if 짧은 문, for 세 가지 형태·range, switch(fallthrough 없음), 레이블 break
- 04함수 - 여러 값 반환과 defer
다중 반환, 이름 붙은 반환값, 가변 인자, 함수 값·클로저, defer 실행 순서
- 05슬라이스와 맵 - 길이와 용량
배열과 슬라이스, append 와 용량 증가, 공유되는 하위 슬라이스 함정, 맵과 존재 확인, slices·maps 패키지
- 06구조체와 메서드 - 값 리시버와 포인터 리시버
구조체 리터럴, 임베딩, 메서드 리시버 선택 기준, 생성 함수 관례
- 07인터페이스 - 선언 없이 만족하는 약속
암묵적 구현, 작은 인터페이스, 타입 단언·타입 switch, fmt.Stringer, nil 인터페이스 함정
- 08오류 처리 - 오류도 값이다
error 반환 관례, fmt.Errorf %w 감싸기, errors.Is·As, 사용자 정의 오류, panic·recover 를 쓸 때
- 09패키지 나누기와 go test
디렉터리와 패키지, 공개·비공개 이름, 표 주도 테스트, go test -cover
- 10고루틴과 채널 - 동시에 일하기
go 문, 버퍼 없는/있는 채널, close 와 range, select, 작업자 풀
- 11sync 와 context - 기다리기·잠그기·취소하기
WaitGroup, Mutex, 경쟁 탐지기 go run -race, context.WithTimeout·취소 전파
- 12종합 실습 - net/http 로 만드는 작은 JSON API
라우팅(ServeMux 패턴), JSON 인코딩, 핸들러 테스트 httptest, 완성 코드는 httptest 서버로 자기 API 를 호출해 결과를 출력하고 끝난다
이 책은 Devin.KR 원고를 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.