Book description
이 책은 Go 입문자가 알아야 할 것에 초점을 맞추어 Go 언어의 핵심을 간추리고 이를 쉽게, 재미있게 풀어쓴 Go 입문서입니다.
만의 독특한 형식(그림과 도식, 풍선 도움말, 대화, 문제 풀이)과 구성으로 개념을 쉽게 설명합니다. 『Head First Go』는 새로운 언어를 익히는 데 가장 흥미로운 입문서입니다.Table of contents
- Head First Go (1/5)
- Head First Go (2/5)
- Head First Go (3/5)
- Head First Go (4/5)
- Head First Go (5/5)
- 서문
- 1 시작해 봅시다-문법 기초
-
2 다음엔 어떤 코드가 실행될까요?-조건문과 반복문
- 메서드 호출하기
- 성적 계산하기
- 주석
- 사용자로부터 성적 입력 받기
- 함수 및 메서드에서 여러 개의 값 반환하기multiple-
- 첫 번째 옵션: 빈 식별자를 사용해 에러 반환 값 무시하기
- 두 번째 옵션: 에러 처리하기
- 조건문
- 특정 조건에서만 에러 출력하기
- 이름 섀도잉 피하기
- 문자열을 숫자로 변환하기
- 블록
- 블록과 변수 스코프
- 드디어 성적 프로그램을 완성했습니다!
- 단축 변수 선언에서 변수는 단 한 번만 새로 선언됩니다!
- 게임을 만들어 봅시다
- 패키지명 vs 임포트 경로
- 난수 생성하기
- 키보드에서 정숫값 입력받기
- 추측 값과 목푯값 비교하기
- 반복문
- 초기화문과 후처리문은 선택사항입니다
- 추측 게임에서 반복문 사용하기
- “continue”와 “break”를 사용한 루프 건너뛰기
- 추측 루프 빠져나오기
- 목푯값 공개
- 축하합니다! 게임이 완성되었습니다!
- Go 도구 상자
-
3 호출해 주세요-함수
- 반복되는 코드
- Printf와 Sprintf를 사용한 출력 형식 지정
- 형식 동사
- 형식 값 너비
- 소수 자릿수 너비 지정하기
- 페인트 계산기에서 Printf 사용하기
- 함수 선언하기
- 함수 매개변수 선언하기
- 페인트 계산기에서 함수 사용하기
- 함수와 변수 스코프
- 함수 반환 값
- 페인트 계산기에서 반환 값 사용하기
- paintNeeded 함수에는 에러 처리를 해야 합니다
- 에러 값
- 다중 반환 값 선언하기
- paintNeeded 함수에서 다중 반환 값 사용하기
- 항상 에러를 처리하세요!
- 함수의 매개변수는 인자의 복사본을 받습니다
- 포인터
- 포인터 타입
- 포인터 값 가져오거나 변경하기
- 함수에서 포인터 사용하기
- 포인터를 사용해 “double” 함수 문제 해결하기
- Go 도구 상자
-
4 코드 묶음-패키지
- 다른 프로그램, 같은 함수
- 패키지를 사용한 프로그램 간 코드 공유
- 패키지 코드는 Go 작업 공간 디렉터리 내에 위치합니다
- 새로운 패키지 만들기
- 새로 만든 패키지 가져오기
- 패키지는 동일한 파일 구조를 사용합니다
- 패키지 네이밍 컨벤션
- 패키지 한정자
- 공용 코드를 패키지로 옮겨 봅시다
- 상수
- 중첩된 패키지 디렉터리와 임포트 경로
- “go install”로 프로그램 실행 파일 설치하기
- GOPATH 환경 변수로 작업 공간 변경하기
- GOPATH 설정하기
- 패키지 배포하기
- “go get”으로 패키지 다운로드 및 설치하기
- “go doc”으로 패키지 문서 읽어 오기
- 문서 주석으로 패키지 문서화하기
- 웹 브라우저에서 문서 보기
- “godoc”으로 HTML 문서 띄우기
- “godoc” 서버에는 여러분의 패키지도 있습니다!
- Go 도구 상자
-
5 목록에서-배열
- 배열은 값의 컬렉션을 담고 있습니다
- 배열의 제로 값
- 배열 리터럴
- “fmt” 패키지의 함수는 배열을 처리할 수 있습니다
- 루프 내에서 배열 원소에 접근하기
- “len” 함수로 배열 길이 구하기
- “for...range”를 사용해 안전하게 배열 순회하기
- “for...range” 루프에서 빈 식별자 사용하기
- 배열에 저장된 수들의 총합 구하기
- 배열에 저장된 수들의 평균 구하기
- 텍스트 파일 읽기
- 텍스트 파일에서 읽어 온 데이터 배열에 저장하기
- “average” 프로그램에서 텍스트 파일 읽기
- 현재 프로그램은 세 개의 값만 처리할 수 있습니다!
- Go 도구 상자
-
6 확장 문제-슬라이스
- 슬라이스
- 슬라이스 리터럴
- 슬라이스 연산자
- 내부 배열
- 내부 배열을 변경하면 슬라이스도 변경됩니다
- “append” 함수를 사용해 슬라이스에 원소 추가하기
- 슬라이스와 제로 값
- 슬라이스와 “append” 함수를 사용해 추가 데이터 읽어 오기
- 개선된 프로그램 사용해 보기
- 에러 발생 시 nil 슬라이스 반환하기
- 명령줄 인자
- os.Args 슬라이스에서 명령줄 인자 가져오기
- 슬라이스 연산자는 슬라이스에도 사용할 수 있습니다
- 명령줄 인자를 사용하도록 수정하기
- 가변 인자 함수
- 가변 인자 사용하기
- 가변 인자 함수를 사용해 평균 계산하기
- 가변 인자 함수에 슬라이스 전달하기
- 슬라이스가 저를 살렸어요!
- Go 도구 상자
- 7 데이터 라벨링-맵
-
8 저장소 만들기-구조체
- 슬라이스와 맵은 한 가지 타입의 값만 갖습니다
- 여러 타입의 값으로 구성된 구조체
- 도트(.) 연산자를 사용한 구조체 필드 접근
- 구조체에 구독자 정보 저장하기
- 사용자 정의 타입과 구조체
- 잡지 구독자 정보에 사용자 정의 타입 사용하기
- 함수에서 사용자 정의 타입 사용하기
- 함수에서 구조체 변경하기
- 포인터를 통한 구조체 필드 접근
- 포인터를 사용한 큰 구조체 전달
- 구조체 타입을 별도 패키지로 옮기기
- 사용자 정의 타입을 외부로 노출할 땐 대문자를 사용합니다
- 구조체 필드를 노출할 땐 대문자를 사용합니다
- 구조체 리터럴
- Employee 구조체 타입 만들기
- Address 구조체 타입 만들기
- 필드 타입으로 구조체 사용하기
- 내부 구조체에 값 할당하기
- 익명 구조체 필드
- 구조체 임베딩
- 사용자 정의 타입이 완성되었습니다!
- Go 도구 상자
- 9 나만의 타입-사용자 정의 타입
-
10 당신만 알고 계세요-캡슐화와 임베딩
- Date 구조체 타입 만들기
- 사용자가 Date 구조체 필드에 잘못된 값을 넣고 있어요!
- 설정자 메서드
- 설정자 메서드에서는 포인터 리시버를 사용해야 합니다
- 나머지 설정자 메서드 추가하기
- 설정자 메서드에 유효성 검증 추가하기
- 필드에 잘못된 값이 들어갈 여지가 여전히 남아 있습니다!
- Date 타입 별도 패키지로 옮기기
- Date 필드 숨기기
- 노출된 메서드를 통해 숨겨진 필드에 접근하기
- 접근자 메서드
- 캡슐화
- Event 타입에 Date 타입 임베딩하기
- 숨겨진 필드는 승격되지 않습니다
- 필드와 마찬가지로 노출된 메서드도 승격됩니다
- Event 타입의 Title 필드 캡슐화하기
- 승격된 메서드는 외부 타입의 메서드와 공존합니다
- 달력 패키지가 완성되었습니다!
- Go 도구 상자
- 11 당신은 무엇을 할 수 있나요?-인터페이스
-
12 다시 일어서기-실패 복구하기
- 파일에서 숫자 읽어 오기
- 에러가 발생하면 파일이 닫히지 않습니다!
- 함수 호출 지연시키기
- 지연된 함수 호출을 사용해 에러 복구하기
- 지연된 함수 호출을 사용해 파일 닫기 보장하기
- 디렉터리 내의 파일 나열하기
- 하위 디렉터리 내의 파일 나열하기 (다소 까다로움)
- 재귀 함수 호출
- 재귀적으로 디렉터리 내용 나열하기
- 재귀 함수에서 에러 처리하기
- 패닉 시작하기
- 스택 트레이스
- 지연된 호출은 크래시가 발생하기 전에 실행됩니다
- scanDirectory에서 “panic” 사용하기
- 언제 패닉을 사용하는가
- “recover” 함수
- 패닉 값은 recover에서 반환됩니다
- scanDirectory에서 패닉 복구하기
- 한 번 더 패닉
- Go 도구 상자
- 13 작업 공유하기-고루틴과 채널
- 14 코드 품질 보증-자동 테스트
- 15 요청에 응답하기-웹 앱
-
16 패턴 따르기-HTML 템플릿
- 방명록 앱
- 요청 처리 함수와 에러 처리 함수
- 프로젝트 디렉터리 설정 및 앱 시연
- HTML로 서명 목록 만들기
- 앱에서 HTML로 응답하기
- “text/template” 패키지
- Execute 메서드에 io.Writer 인터페이스 사용하기
- ResponseWriter와 os.Stdout은 io.Writer를 만족합니다
- 액션으로 템플릿에 데이터 삽입하기
- “if” 액션으로 템플릿에 선택 영역 만들기
- “range” 액션으로 템플릿 영역 반복하기
- 액션으로 템플릿에 구조체 필드 삽입하기
- 파일에서 서명 목록 읽어 오기
- 서명 목록과 서명 개수를 가진 구조체
- 템플릿에 서명 목록 추가하기
- HTML 폼으로 사용자 데이터 받기
- HTML 폼에 응답하기
- 폼 전송 요청
- 폼 전송을 위한 경로 및 HTTP 메서드
- 요청에 담긴 폼 필드 값 가져오기
- 폼 데이터 저장하기
- http 리다이렉트
- 한 번 사용해 봅시다!
- 완성된 앱 코드
- Go 도구 상자
- 부록 A 파일 열기
- 부록 B 번외
- Index (1/4)
- Index (2/4)
- Index (3/4)
- Index (4/4)
Product information
- Title: Head First Go: 명확한 예제로 효율적인 학습법을 제시하는 Go 입문서
- Author(s):
- Release date: March 2020
- Publisher(s): Hanbit Media, Inc.
- ISBN: 9791162247921
You might also like
book
몽고DB 완벽 가이드(3판): 실전 예제로 배우는 NoSQL 데이터베이스 기초부터 활용까지
몽고DB 입문자를 위한 기초부터 실제 배포에 적용할 수 있는 실용적이고 깊이 있는 내용까지 담았다. 개정 3판에서는 …
book
한 권으로 끝내는 Node & Express(2판): 모던 웹을 위한 서버 사이드 자바스크립트의 모든 것
자바스크립트 개발 스택의 핵심인 노드와 익스프레스로 동적 웹 애플리케이션을 만들어보자. 웹사이트 개발 과정을 살펴보며 익스프레스 기본 …
book
하둡 완벽 가이드(4판): 데이터의 숨겨진 힘을 끌어내는 최고의 클라우드 컴퓨팅 기술
하둡 프로젝트의 커미터이자 핵심 설계자인 톰 화이트가 집필한 이 책은 하둡 창시자인 더그 커팅을 비롯한 프로젝트별 …
book
헤드 퍼스트 디자인 패턴(개정판): 14가지 GoF 필살 패턴! 유지 관리가 편리한 객체지향 소프트웨어를 만드는 법
『헤드 퍼스트 디자인 패턴』은 2005년 출간 후 17년이라는 시간 동안 디자인 패턴 분야에서 부동의 베스트셀러 1위를 …