01장. Go의 간략한 소개
Go 소개
Go의 역사
윈도우가 아니라 유닉스인 이유
Go의 장점
go doc과 godoc 유틸리티
Hello World!
함수 소개
패키지 소개
Go 코드 실행
Go 코드 컴파일
Go를 스크립트 언어처럼 사용
중요한 형식과 코딩 규칙
Go의 중요한 특성
변수 선언과 사용
변수 출력
프로그램 흐름 제어
for 루프와 range로 반복
사용자 입력받기
표준 입력 읽기
커맨드라인 인수 사용
에러 변수로 입력 타입 구분
Go의 동시성 모델 이해
Go로 which(1 개발
정보 로깅
log.Fatal(과 log.Panic(
커스텀 로그 파일 작성
로그 항목에 줄 번호 츨력
제네릭 개요
기초적인 전화번호부 애플리케이션 개발
연습문제
요약
참고 자료
02장. 기본 타입
error 타입
숫자 데이터 타입
숫자가 아닌 데이터 타입
문자열, 문자, 룬
정수를 문자열로 변환
unicode 패키지
strings 패키지
날짜와 시간
날짜와 시간을 파싱하는 유틸리티
타임 존 다루기
Go 상수
상수 생성기 iota
비슷한 데이터 모으기
배열
슬라이스
슬라이스 길이와 용량
슬라이스의 일부분 선택
바이트 슬라이스
슬라이스에서 원소 삭제
배열과 슬라이스의 관계
copy( 함수
슬라이스 정렬
포인터
난수 생성
랜덤한 문자열 생성
안전한 난수 생성
전화번호부 애플리케이션 업데이트
연습문제
요약
참고 자료
03장. 합성 데이터 타입
맵
nil 맵에 저장
맵 반복
구조체
새 구조체 정의
new 키워드 사용
구조체의 슬라이스
정규표현식과 패턴 매칭
Go 정규표현식
이름과 성 매칭
정수 매칭
레코드의 필드 매칭
전화번호부 애플리케이션 개선
CSV 파일 다루기
인덱스 추가
전화번호부 애플리케이션의 개선된 버전
연습문제
요약
참고 자료
04장. 리플렉션과 인터페이스
리플렉션
Go 구조체의 내부
리플렉션을 이용해
이 책에서 다루는 내용
◆ 실전에서의 Go 활용 방법
◆ 안정적이고 동시성을 지원하는 고성능 코드
◆ 슬라이스, 배열, 맵, 포인터 등의 데이터 구조 다루기
◆ 리플렉션과 인터페이스를 활용한 재사용 가능한 패키지 개발
◆ 효과적인 Go 프로그래밍을 위한 제네릭 활용
◆ 동시성 있는 RESTful 서버 및 gRPC 클라이언트와 서버 개발
◆ JSON 데이터를 이용하는 Go 구조체 정의
이 책의 대상 독자
Go에 관련한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머를 대상으로 한다. 다른 프로그래밍 언어에 대한 경험이 있는 상태에서 Go를 배우고 싶은 개발자도 기초를 볼 필요 없이 곧바로 Go를 익힐 수 있을 것이다.
이 책의 구성
1장, ‘Go의 간략한 소개’에서는 Go의 역사와 Go의 중요한 특징 및 장점부터 소개한다. Go doc과 go doc 유틸리티를 소개하고, Go 프로그램을 컴파일하고 실행하는 방법을 설명한다. 그런 다음엔 결과를 출력하는 방법과 사용자 입력을 받는 방법, 커맨드라인 인수를 다루는 방법, 로그 파일의 사용법을 다룬다. 마지막으로 전화번호부 애플리케이션의 기본 버전을 개발해보고 이후 장에서 이를 발전시켜 나간다.
2장, ‘기본 타입’에서는 Go의 기본 타입들을 알아보고 같은 데이터 타입들을 모아 사용할 수 있는 배열과 슬라이스도 알아본다. Go의 포인터, 상수, 날짜 및 시간을 다루는 방법도 알아보고 마지막에서는 난수를 생성해 전화번호부 애플리케이션의 데이터를 무작위 데이터로 채워본다.
3장, ‘합성 데이터 타입’에서는 맵, 구조체, struct 키워드를 살펴본다. 또한 정규표현식과 패턴 매칭, CSV 파일도 다룬다. 마지막으로 전화번호부 애플리케이션의 데이터가 영속적으로 저장되게 만든다.
4장, ‘리플렉션과 인터페이스’에서는 리플렉션, 인터페이스, 데이터 타입에 대한 함수인 타입 메서드를 다룬다. 또한 sort.Interface 인터페이스를 사용해 슬라이스를 정렬하는 방법, 빈 슬라이스, 타