책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9791186978818
· 쪽수 : 428쪽
· 출판일 : 2016-03-31
책 소개
목차
지은이 서문
1장 Go 시작하기
1.1 Go는 어떤 언어인가?
1.2 Go 설치하기
___1.2.1 윈도에 설치하기
___1.2.2 OS X에 설치하기
___1.2.3 리눅스와 FreeBSD에 설치하기
___1.2.4 설치 확인
___1.2.5 OS X에 설치된 이전 버전 업그레이드
1.3 Go 개발 환경
___1.3.1 작업 공간 구성
___1.3.2 에디터
1.4 첫 번째 Go 프로그램
___1.4.1 코드 실행
___1.4.2 코드 분석
1.5 Go 참고 문서
2장 기본 문법
2.1 Go 문법의 특징
___2.1.1 간결함과 유연함
___2.1.2 정적 타입 언어, 동적 프로그래밍
___2.1.3 모호한 요소 제거
___2.1.4 세미콜론 생략 가능
___2.1.5 주석
___2.1.6 gofmt로 코드 서식 지정
2.2 변수와 상수
___2.2.1 변수 선언
___2.2.2 변수 이름
___2.2.3 상수
___2.2.4 열거형
2.3 프로그램의 기본 흐름 제어
___2.3.1 if
___2.3.2 switch
___2.3.3 for
2.4 함수
___2.4.1 함수 정의
___2.4.2 매개변수 전달 방식
___2.4.3 defer
___2.4.4 내장 함수
___2.4.5 클로저
___2.4.6 함수를 매개변수로 전달하기
2.5 패키지
___2.5.1 패키지 종류
___2.5.2 접근 제어
___2.5.3 별칭
___2.5.4 init() 함수
3장 데이터 타입
3.1 불
3.2 숫자
___3.2.1 정수
___3.2.2 실수(부동소수점)
___3.2.3 복소수
___3.2.4 숫자 연산
3.3 문자열
___3.3.1 문자열과 문자
___3.3.2 문자열 연산
3.4 배열과 슬라이스
___3.4.1 생성과 초기화
___3.4.2 내부 요소에 순차적으로 접근
___3.4.3 부분 슬라이스 추출
___3.4.4 슬라이스 변경
3.5 맵
___3.5.1 생성과 초기화
___3.5.2 값 찾기
___3.5.3 요소 추가, 수정, 삭제
3.6 포인터와 참조 타입
___3.6.1 포인터 생성과 초기화
___3.6.2 값 전달
4장 객체 지향 프로그래밍
4.1 객체 표현 방식
4.2 사용자 정의 타입
___4.2.1 사용자 정의 타입의 종류
___4.2.2 메서드
4.3 구조체
___4.3.1 생성과 초기화
___4.3.2 내부 필드 접근
___4.3.3 구조체 임베딩
___4.3.4 정보 은닉
4.4 인터페이스
___4.4.1 인터페이스 정의
___4.4.2 다형성
___4.4.3 인터페이스 임베딩
___4.4.4 타입 변환
5장 병행 처리
5.1 고루틴
5.2 채널
___5.2.1 채널 방향
___5.2.2 버퍼드 채널
___5.2.3 close & range
___5.2.4 select
5.3 저수준 제어
___5.3.1 sync.Mutex
___5.3.2 sync.RWMutex
___5.3.3 sync.Once
___5.3.4 sync.WaitGroup
___5.3.5 원자성을 보장하는 연산
5.4 활용
___5.4.1 타임아웃
___5.4.2 공유 메모리
___5.4.3 파이프라인
___5.4.4 맵리듀스
6장 에러 처리
6.1 에러 타입
6.2 에러 생성
___6.2.1 errors.New() 사용
___6.2.2 fmt 패키지 사용
___6.2.3 사용자 정의 에러 타입
6.3 panic & recover
___6.3.1 런타임 에러와 패닉
___6.3.2 recover
6.4 에러 처리
___6.4.1 에러 확인 함수 사용
___6.4.2 클로저로 에러 처리
7장 패키지
7.1 커스텀 패키지
___7.1.1 패키지 만들기
___7.1.2 별칭
___7.1.3 운영체제에 종속적인 코드 처리
___7.1.4 문서화
7.2 서드 파티 패키지
7.3 Go의 기본 라이브러리
___7.3.1 문자열 다루기
___7.3.2 컬렉션
___7.3.3 파일, 디렉터리, 운영체제 환경 다루기
___7.3.4 숫자 연산
___7.3.5 네트워크
___7.3.6 리플렉션
___7.3.7 테스트
___7.3.8 기타
8장 나만의 웹 프레임워크 만들기
8.1 나만의 웹 프레임워크 만들기
8.2 첫 번째 웹 애플리케이션
8.3 라우터
8.4 컨텍스트
8.5 미들웨어
8.6 추상화
8.7 렌더러
8.8 커스텀 미들웨어
9장 다양한 패키지를 조합하여 마이크로 프레임워크 구성하기
9.1 채팅 애플리케이션 만들기
9.2 웹 서버 구동하기
9.3 인증 처리하기
___9.3.1 세션
___9.3.2 로그인
___9.3.3 인증
9.4 채팅방과 메시지 처리하기
___9.4.1 몽고DB 환경 구성
___9.4.2 채팅방 관리 기능 구현
___9.4.3 메시지 조회 기능 구현
9.5 HTML과 자바스크립트로 클라이언트 화면 만들기
9.6 웹소켓 기능 구현하기
10장 Revel 프레임워크로 블로그 만들기
10.1 Revel 프로젝트 만들기
___10.1.1 Revel 설치하기
___10.1.2 블로그 애플리케이션 만들기
___10.1.3 데이터베이스 설정
10.2 Hello World
___10.2.1 웹 서버 시작하기
___10.2.2 Hello Revel!
10.3 포스트 기능 만들기
___10.3.1 포스트 모델 만들기
___10.3.2 데이터베이스 초기화
___10.3.3 포스트 컨트롤러 만들기
___10.3.4 포스트 목록 보기
___10.3.5 새 포스트 만들기
___10.3.6 각 포스트 보여주기
___10.3.7 포스트 수정하기
___10.3.8 포스트 삭제하기
10.4 댓글 기능 만들기
___10.4.1 코멘트 모델 만들기
___10.4.2 코멘트 컨트롤러 작성하기
___10.4.3 댓글 작성을 위한 라우팅 규칙 추가하기
___10.4.4 포스트의 Show 페이지에서 댓글 보여주기
10.5 리팩토링
___10.5.1 댓글 목록을 별도의 템플릿으로 만들기
___10.5.2 댓글 작성 폼을 별도의 템플릿으로 만들기
___10.5.3 포스트 작성 폼을 별도의 템플릿으로 만들기
___10.5.4 새로 분리한 템플릿에 댓글 삭제 기능 추가하기
10.6 데이터 처리에 ORM 프레임워크 적용
___10.6.1 gorm 초기 설정
___10.6.2 gorm으로 데이터 처리
10.7 로그인과 보안
___10.7.1 사용자 모델 추가
___10.7.2 로그인 기능 구현
___10.7.3 기본 계정 생성
___10.7.4 인증 인터셉터 추가
___10.7.5 권한이 있는 사용자만 해당 기능에 접근
저자소개
리뷰
책속에서
Go 언어를 처음 접한 것은 2014년 7월이었다. 대용량 메시지를 처리하는 서비스를 개발하던 중 성능을 개선하기 위해 여러 기술을 검토하다가 Go 언어를 사용해 보았다. 몇몇 후보가 있었지만 Go 언어가 성능이 좋고 특히 병행 처리를 잘 지원한다는 소문을 들었던 터라, 이번 기회에 Go 언어를 해보자는 생각으로 빠르게 Go 언어의 스펙을 훑어보았다. 퇴근길 지하철에서 A Tour of Go를 보았고, 그날 밤부터 루비로 작성돼 있던 서비스의 기본 로직을 Go 언어로 다시 작성하기 시작했다. 주말 동안 기존 기능을 Go 언어로 변환하는 작업을 마쳤고(Go 언어는 지금까지 접했던 언어 중 Learning Curve가 가장 짧았다) 부하 테스트 결과도 아주 만족스러웠다. 그 후 Go 언어의 재미에 푹 빠지게 되었고, 그때부터 개인적으로나 업무에 사용되는 코드에나 Go 언어를 사용하기 시작했다. 당시 국내에는 Go 언어가 아직 널리 퍼져있지 않았던 터라, Go 언어를 알리고 싶은 마음에 몇몇 컨퍼런스에서 소개했고, 그것을 계기로 이렇게 책을 펴내게 되었다.
최근 IT 산업 환경은 아주 빠르게 변화하고 있다. 컴퓨터에는 CPU가 여러 개 장착되어 나오고, 클라우드 환경에서 서비스하는 것이 일반화되고 있다. 점점 복잡해지는 비즈니스와 IT 환경에 맞게 전통적인 모노리틱(Monolithic) 아키텍처에서 벗어나, 기능별로 구분된 작은 서비스의 조합으로 하나의 애플리케이션을 구성하는 마이크로 서비스 아키텍처를 지향하고 있다. Go 언어는 처음부터 이러한 환경을 고려하여 설계됐고, 지금 이 시대의 프로그래머에게 Go 언어는 아주 좋은 선택지가 될 것이다.
책을 집필하는 중에도 Go 언어에는 많은 변화가 있었다. 메이저 업그레이드가 두 번 있었고(Go 1.4 → Go 1.6), 커뮤니티에서 늘 뜨거웠던 주제인 “어떤 게 가장 Go 언어다운 방법일까?”에 대한 논쟁도 이제는 어느 정도 정리되어 베스트 프랙티스가 만들어지고 있다. 그렇게 정리되던 중에는 반짝 인기를 끌다가 얼마 지나지 않아 외면당한 프레임워크도 있었다. 이런 분위기에 책의 내용도 여러 차례 수정해야 했다. 물론 앞으로도 Go 언어는 계속 발전할 것이다. Go 언어의 변화를 독자 스스로 꾸준히 학습해가기를 바라는 마음으로, Go 언어의 기본 스펙을 충실히 설명하고 다양한 외부 패키지들을 활용하여 실제 애플리케이션을 만들어 보는 과정도 함께 실었다. ---지은이 서문 중에서