길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스
문법, 라이브러리, 웹 프레임워크 제작과 활용 Go 언어 웹 프로그래밍 철저 입문
정 가
27,000원
I S B N
9791186978818
출 간
2016-03-31
분 량
428쪽
지 은 이
장재휴
난 이 도
초급
부 록
예제 소스

Go 언어, 이렇게 활용한다!

Go는 간결하고 유연한 문법을 지원하며, 고루틴으로 병행 처리 코드를 쉽게 작성할 수 있다. 또한, 상속이 아닌 조합으로 코드를 재사용하여 확장성이 좋고, 패키지화된 소스 코드에서 실제로 사용되는 부분만 컴파일하므로 컴파일 속도가 매우 빠르다. 이런 특징들을 고려하여 Go 언어다운 프로그래밍 방법을 설명한다. 각 상황에 맞게 Go 기본 라이브러리와 다양한 외부 패키지를 조합하여 마이크로 서비스 형태로 자신만의 프레임워크 제작 방법을 배운다. 이렇게 만든 마이크로 프레임워크로는 여러 사용자가 실시간으로 대화할 수 있는 채팅 애플리케이션을 만든다. 풀스택 프레임워크 Revel은 웹 개발에 필요한 기능 대부분을 제공하므로 웹 애플리케이션을 아주 빠르게 제작할 수 있고, 이미 만들어진 웹 애플리케이션에 기능을 추가하기도 쉽다. 이 책에서는 Revel을 활용하여 웹 애플리케이션을 만든다.

목차

지은이 서문

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 권한이 있는 사용자만 해당 기능에 접근
더보기접기

저자&기여자

ㆍ지은이 장재휴

소개

2006년부터 8년간 이랜드시스템스에서 아키텍트 업무를 했고, 이후 퍼플웍스에서 웹 서버 개발을 했다. 지금은 중국에서 새로운 일을 시작했다. 여행을 좋아하고 다양한 컴퓨터 언어에 관심이 많다. 외부 커뮤니티 활동을 하며 IT 지식을 공유하고자 노력 중이고, 개발 커뮤니티에서 만난 사람들과 Remotty(http://blog.remotty.com)라는 그룹을 만들어 함께 즐거운 개발 생활을 하고 있다.


보도자료

저작권 안내

모든 자료는 저작권법의 보호를 받는 저작물로, 허락 없이 편집하거나 다른 매체에 옮겨 실을 수 없습니다.
인공지능(AI) 기술 또는 시스템을 훈련하기 위해 자료의 전체 내용은 물론 일부도 사용하는 것을 금지합니다.

All materials are protected by copyright law and may not be edited or reproduced in other media without permission.
It is prohibited to use all or part of the materials, including for training artificial intelligence (AI) technologies or systems, without authorization.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.