[Must Have] Tucker의 Go 언어 프로그래밍(세종도서 선정작)

Golang 입문부터 고급 기법까지, 재미있는 4가지 프로젝트와 함께

지은이 : 공봉식(Tucker)
발행일 : 2021년 04월 12일
난이도 : 입문, 초급, 중급
정가 : 42,000원
신간안내 :

ISBN : 979-11-971498-0-1 93000
분량 : 744쪽
판형 : 46배판형(183mm x 235mm)
소스 코드 :

판매 중

37,800

설명

게임 회사 서버 전문가가 알려주는
Go 언어를 내 것으로 만드는 비법

구글이 개발한 Go는 고성능 비동기 프로그래밍에 유용한 언어입니다. 이 책은 Go 언어로 ‘나만의 프로그램’을 만들 수 있게 이끌어줍니다. 프로그래밍 초보자도 쉽고 명확하게 이해할 수 있도록 학습 목표를 일목요연하게 제시하고 핵심 내용을 정리해 보여줍니다. 언어 문법과 예제 작동 순서를 그림을 곁들여 설명하고, 단계별로 프로젝트를 구현하며 프로그래밍을 직접 체험할 수 있게 했습니다.

32만 뷰가 증명하는 GO 언어 명강사를 만나자

Go 언어 1등 유튜버 Tucker가 더 체계적으로 Go 언어를 알려줍니다. 문법만 알려드리는 데 그치지 않습니다. Go 프로그래밍 능력을 길러드리는 것이 목표입니다. Go 언어에 입문해, 커뮤니티와 구글링으로 현업 문제를 해쳐나갈 수 있는 문턱까지 안내해드립니다. 포기하지 않고 예제 하나하나를 타이핑해가며 공부하면 반드시 목표를 달성할 수 있게 구성했습니다.

더 보기


이 책의 구성

이 책은 0~3단계까지, 배경지식부터 Go 프로그래밍에 유용한 기법까지 다룹니다. 추가로 본문에서 다하지 못한 이야기는 에서 더 깊고 자세히 다룹니다.

_0단계 Go 언어를 배우기 전에

기초 원리를 잘 알아야 더 깊은 이해를 할 수 있습니다. 본격적으로 Go 프로그래밍 언어를 배우기 앞서 개발 환경을 구축합니다. 그후 프로그래밍 입문자와 초보자를 고려해 컴퓨터란 무엇이고, 어떻게 동작하는지 또 프로그래밍이란 무엇인지, 현대적 프로그래밍 언어가 탄생하게 된 배경은 무엇이고, Go 언어는 어떤 특징을 가지는지 살펴봅니다. 컴퓨터, 프로그램, 프로그래밍 언어의 관계를 더 잘 이해하고 더 좋은 코드를 만드는 발판이 되길 바랍니다.

더 보기

_1단계 가볍게 Go 입문하기

Go 언어 기본 문법을 차근차근 배웁니다. 변수, 연산자, 제어문, 함수 등 대부분 언어가 제공하는 기본 문법입니다. Go 언어의 기본 문법과 프로그래밍 방식을 알려드립니다.

_2단계 고급 기법으로 Go 레벨업하기

Go 언어 고급 문법을 알아봅시다. 메서드, 인터페이스, 다양한 함수 활용 방법을 살펴봅니다. 상황에 맞게 자료구조를 선택하는 방법과 예외 상황에 대처하는 방법도 배웁니다. 고루틴, 채널, 컨텍스트를 활용한 Go 언어만의 독특한 동시성 프로그래밍도 배우게 됩니다. 마지막 장에서는 ★ 두 개 수준 프로젝트로 파일에서 원하는 단어를 찾는 프로그램을 만들어보겠습니다.

_3단계 Go 프로그래밍에 유용한 기법 익히기

3단계는 어엿한 Go 언어 프로그래머로 첫발을 내딛을 수 있도록 돕는 데 목적이 있습니다. Go 언어 문법은 이미 다 배웠습니다. 문법만 익혀서는 좋은 프로그램을 만들 수 없습니다. 문법을 넘어서 Go 프로그래머로 성장해야 합니다. SOLID 객체지향 설계 원칙, 테스트, 벤치마크 방법을 익히며 좋은 프로그램을 만드는 프로그래머로 성장해봅시다. 이대로 끝나면 아쉽겠죠? 지금까지 배운 것을 바탕으로 29장에서는 웹 서버를 만듭니다. 그리고 ‘RESTful API 서버’, ‘Todo 리스트 웹 사이트 만들기’ 프로젝트를 함께 진행해보고 마무리합니다.

_Tucker 노트

본문에서 미처 다루지 못한 Go 문법, 생각하는 프로그래밍, Go 언어를 Go답게 쓰는 방법을 알려드립니다. 저자 Tucker의 특별한 노트를 만나보세요.
A. Go 문법 보충 수업
B. 생각하는 프로그래밍

목차

[0단계 Go 언어를 배우기 전에]

00장 개발 환경 구축

01장 컴퓨터 원리

_1.1 비트의 탄생과 트랜지스터
_1.2 트랜지스터에서 계산기로
_1.3 계산기에서 컴퓨터로
_1.4 컴퓨터 동작 원리
핵심 요약
연습문제

더 보기

02장 프로그래밍 언어

_2.1 초창기 프로그래밍 언어
_2.2 어셈블리어의 등장
_2.3 고수준 언어의 등장
_2.4 프로그래밍 언어의 구분
핵심 요약
연습문제

[1단계 가볍게 Go 입문하기]

03장 Hello Go World

_3.1 Go 역사
_3.2 Go 언어 특징
_3.3 코드가 실행되기까지
_3.4 Hello Go World 코드 뜯어보기
핵심 요약
연습문제

04장 변수

_4.1 변수란?
_4.2 변수 선언
_4.3 변수에 대해 더 알아보기
_4.4 변수 선언의 다른 형태
_4.5 타입 변환
_4.6 변수의 범위
_4.7 숫자 표현
핵심 요약
연습문제

05장 fmt 패키지를 이용한 텍스트 입출력

_5.1 표준 입출력
_5.2 표준 입력
_5.3 〈깊이보기〉 키보드 입력과 Scan() 함수의 동작 원리
핵심 요약
연습문제

06장 연산자

_6.1 산술 연산자
_6.2 비교 연산자
_6.3 〈깊이보기〉 실수 오차
_6.4 논리 연산자
_6.5 대입 연산자
_6.6 연산자 우선순위
핵심 요약
연습문제

07장 함수

_7.1 함수 정의
_7.2 함수를 호출하면 생기는 일
_7.3 함수는 왜 쓰나?
_7.4 재귀 호출
핵심 요약
연습문제

08장 상수

_8.1 상수 선언
_8.2 상수는 언제 사용하나?
_8.3 타입 없는 상수
_8.4 상수와 리터럴
핵심 요약
연습문제

09장 if문

_9.1 if문 기본 사용법
_9.2 그리고 &&, 또는 ||
_9.3 중첩 if
_9.4 if 초기문; 조건문
핵심 요약
연습문제

10장 switch문

_10.1 switch문 동작 원리
_10.2 switch문을 언제 쓰는가?
_10.3 다양한 switch문 형태
_10.4 const 열거값과 switch
_10.5 break와 fallthrough 키워드
핵심 요약
연습문제

11장 for문

_11.1 for문 동작 원리
_11.2 continue와 break
_11.3 중첩 for문
_11.4 중첩 for문과 break, 레이블
핵심 요약
연습문제

12장 배열

_12.1 배열
_12.2 배열 사용법
_12.3 배열은 연속된 메모리
_12.4 다중 배열
핵심 요약
연습문제

13장 구조체

_13.1 선언 및 기본 사용
_13.2 구조체 변수 초기화
_13.3 구조체를 포함하는 구조체
_13.4 구조체 크기
_13.5 프로그래밍에서 구조체의 역할
핵심 요약
연습문제

14장 포인터

_14.1 포인터란?
_14.2 포인터는 왜 쓰나?
_14.3 인스턴스
_14.4 〈깊이보기〉 스택 메모리와 힙 메모리
핵심 요약
연습문제

15장 문자열

_15.1 문자열
_15.2 문자열 순회
_15.3 문자열 합치기
_15.4 〈깊이보기〉 문자열 구조
_15.5 〈깊이보기〉 문자열은 불변이다
핵심 요약
연습문제

16장 패키지

_16.1 패키지
_16.2 패키지 사용하기
_16.3 Go 모듈
_16.4 패키지명과 패키지 외부 공개
_16.5 〈깊이보기〉 패키지 초기화
핵심 요약
연습문제

17장 〈Project〉 숫자 맞추기 게임 만들기

_17.1 해법
_17.2 사전지식
_17.3 STEP 1 : 랜덤한 숫자 생성하기
_17.4 STEP 2 : 숫자값 입력받기
_17.5 STEP 3 : 숫자 맞추기 완성하기
핵심 요약
연습문제

[2단계 고급 기법으로 Go 레벨업하기]

18장 슬라이스

_18.1 슬라이스
_18.2 〈깊이보기〉 슬라이스 동작 원리
_18.3 슬라이싱
_18.4 유용한 슬라이싱 기능 활용
_18.5 슬라이스 정렬
핵심 요약
연습문제

19장 메서드

_19.1 메서드 선언
_19.2 메서드는 왜 필요한가?
_19.3 포인터 메서드 vs 값 타입 메서드
핵심 요약
연습문제

20장 인터페이스

_20.1 인터페이스
_20.2 인터페이스 왜 쓰나?
_20.3 〈깊이보기〉 덕 타이핑
_20.4 인터페이스 기능 더 알기
_20.5 인터페이스 변환하기
핵심 요약
연습문제

21장 함수 고급편

_21.1 가변 인수 함수
_21.2 defer 지연 실행
_21.3 함수 타입 변수
_21.4 함수 리터럴
핵심 요약
연습문제

22장 자료구조

_22.1 리스트
_22.2 링
_22.3 맵
_22.4 〈깊이보기〉 맵의 원리
핵심 요약
연습문제

23장 에러 핸들링

_23.1 에러 반환
_23.2 〈깊이보기〉 에러 타입
_23.3 패닉
핵심 요약
연습문제

24장 고루틴과 동시성 프로그래밍

_24.1 스레드란?
_24.2 고루틴 사용
_24.3 〈깊이보기〉 고루틴의 동작 방법
_24.4 동시성 프로그래밍 주의점
_24.5 뮤텍스를 이용한 동시성 문제 해결
_24.6 뮤텍스와 데드락
_24.7 또 다른 자원 관리 기법
핵심 요약
연습문제

25장 채널과 컨텍스트

_25.1 채널 사용하기
_25.2 컨텍스트 사용하기
핵심 요약
연습문제

26장 〈Project〉 단어 검색 프로그램 만들기

_26.1 해법
_26.2 사전 지식
_26.3 STEP 1 : 실행 인수 읽고 파일 목록 가져오기
_26.4 STEP 2 : 파일을 열어서 라인 읽기
_26.5 STEP 3 : 파일 검색 프로그램 완성하기
_26.6 개선하기
핵심 요약
연습문제

[3단계 Go 프로그래밍에 유용한 기법 익히기]

27장 객체지향 설계 원칙 SOLID

_27.1 객체지향 설계 5가지 원칙 SOLID
_27.2 단일 책임 원칙
_27.3 개방-폐쇄 원칙
_27.4 리스코프 치환 원칙
_27.5 인터페이스 분리 원칙
_27.6 의존 관계 역전 원칙
_27.7 학습 마무리
핵심 요약
연습문제

28장 테스트와 벤치마크

_28.1 테스트 코드
_28.2 〈깊이보기〉 테스트 주도 개발
_28.3 벤치마크
핵심 요약
연습문제

29장 Go 언어로 만드는 웹 서버

_29.1 HTTP 웹 서버 만들기
_29.2 〈깊이보기〉 HTTP 동작 원리
_29.3 HTTP 쿼리 인수 사용하기
_29.4 ServeMux 인스턴스 이용하기
_29.5 파일 서버
_29.6 웹 서버 테스트 코드 만들기
_29.7 JSON 데이터 전송
_29.8 HTTPS 웹 서버 만들기
핵심 요약
연습문제

30장 〈Project〉 RESTful API 서버 만들기

_30.1 해법
_30.2 사전 지식 : RESTful API
_30.3 STEP 1 : RESTful API 서버 만들기
_30.4 STEP 2 : 테스트 코드 작성하기
_30.5 STEP 3 : 특정 학생 데이터 반환하기
_30.6 STEP 4 : 학생 데이터 추가/삭제하기
핵심 요약
연습문제

31장 〈Project〉 Todo 리스트웹 사이트 만들기

_31.1 해법
_31.2 준비하기
_31.3 STEP 1 : 웹 서버 만들기
_31.4 STEP 2 : 프론트엔드 만들기
_31.5 웹 배포 방법 고려하기
_31.6 STEP 3 : 헤로쿠로 배포하기
핵심 요약
연습문제

[Tucker 노트]

A Go 문법 보충 수업

_A.1 배열과 슬라이스
_A.2 for range
_A.3 입출력 처리
_A.4 알아두면 유용한 go 명령어
_A.5 cgo로 C 언어 호출하기
_A.6 go doc
_A.7 Embed

B 생각하는 프로그래밍

_B.1 Go는 객체지향 언어인가?
_B.2 구조체에 생성자를 둘 수 있나?
_B.3 포인터를 사용해도 복사가 일어나나?
_B.4 값 타입을 쓸 것인가? 포인터를 쓸 것인가?
_B.5 구체화된 객체와 관계하라고?
_B.6 Go 언어 가비지 컬렉터
_B.6 Go 언어 가비지 컬렉터

WRITER

공봉식

13년 차 게임 서버 프로그래머로 다양한 장르의 온라인 게임을 개발했습니다. 넥슨과 네오위즈를 거쳐서 현재는 EA 캐나다에서 근무 중입니다. 「Tucker Programming」 유튜브 채널을 운영합니다.

CONTENTS

관련 콘텐츠들

프로파일링으로 성능 개선하기 | pprof, Graphviz, Hey, 부하 테스트

프로파일링이란 프로그램의 성능 지표를 프로그램이 실행 중에 실시간으로 측정 기록하는 것을 말합니다. 프로파일링으로 측정하는 성능 지표는 프로그램 실행 시간, 메모리 사용량, 함수 호출 시간과 빈도, 메모리가 생성되는 시점과 빈도 등이 있습니다. 프로파일링 도구를 통해서 수집된 데이터는 파일 형태로 저장되어서 분석 툴을 사용해 성능 지표들을 분석하게 됩니다.

Read More

[Programming] 객체지향 프로그래밍 | 5가지 설계 원칙 SOLID

객체지향 설계 5가지 원칙인 SOLID를 알아보고 좋은 설계란 무엇인지 살펴봅니다. SOLID 5가지 원칙은 반드시 지켜야 하는 의무사항은 아니지만 이 원칙들에 입각해서 설계를 하면 더 좋은 설계를 할 수 있습니다. 각 원칙을 살펴보고 좋은 설계와 나쁜 설계를 알아보겠습니다.

Read More
Q&A

묻고 답해요beta

책을 읽다 이해가 되지 않거나 막히면 이곳에 질문을 남겨주세요. 저자님이 직접 답해드립니다.

전체 1
번호 제목 작성자 작성일 추천 조회
공지사항
질문을 올려주세요 🙂
god | 2021.08.18 | 추천 0 | 조회 4972
god 2021.08.18 0 4972
MISPRINT

오탈자를 알려주세요

알려주신 오탈자는 검토 후 다음 쇄에 반영되며,
내역은 정오표에서 확인할 수 있습니다.

SUBSCRIPTION

책 이야기를 들려드립니다.

『Tucker의 Go 언어 프로그래밍』이 만들어지는 집필, 편집, 베타리딩 등의 출간 소식뿐 아니라,
관련 주제의 책 소식, 저자와의 만남, 강의, 오탈자 등 책 관련 소식을 전해드립니다.

추가 정보

지은이

공봉식

발행일

2021년 4월 12일

ISBN

979-11-971498-0-1 93000

분량

744쪽

판형

46배판형(183mm x 235mm)

상품평

아직 상품평이 없습니다.

“[Must Have] Tucker의 Go 언어 프로그래밍(세종도서 선정작)”의 첫 상품평을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

©2020 GoldenRabbit. All rights reserved.
상호명 : 골든래빗 주식회사
(04051) 서울특별시 마포구 양화로 186, 5층 512호, 514호 (동교동, LC타워)
TEL : 0505-398-0505 / FAX : 0505-537-0505
대표이사 : 최현우
사업자등록번호 : 475-87-01581
통신판매업신고 : 2023-서울마포-2391호
master@goldenrabbit.co.kr
개인정보처리방침
배송/반품/환불/교환 안내