Go 풀스택 웹 개발 [Go와 리액트, Gin, GopherJS를 사용한 풀스택 웹 프로그래밍]
- 원서명Hands-On Full Stack Development with Go: Build full stack web applications with Go, React, Gin, and GopherJS (ISBN 9781789130751)
- 지은이미나 안드라오스(Mina Andrawos)
- 옮긴이이우현
- ISBN : 9791161754000
- 30,000원
- 2020년 03월 26일 펴냄
- 페이퍼백 | 392쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 프로그래밍 언어
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/fullstack-go)
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
Go 언어와 리액트를 사용한 풀스택 개발을 소개한다. 간단한 웹 서비스의 프론트엔드와 백엔드를 처음부터 순차적으로 구현한다. Go 언어의 기본 개념과 문법을 설명하고 고루틴과 채널 등의 동시성 프로그래밍 개념도 소개한다. 리액트 프레임워크를 사용해 프론트엔드를 개발하고 백엔드는 Go 기반의 Gin 프레임워크를 사용해 RESTful API 서버를 구축한다. 나아가 유닛 테스트와 벤치마킹을 통해 작성한 코드를 검증하는 방법을 소개한다. 프로그래밍의 기본 개념을 이해하고 개발 경험이 있는 초, 중급 개발자를 대상으로 한다.
이 책에서 다루는 내용
■ 실제 애플리케이션 구현을 통한 Go 프로그래밍 이해
■ 리액트 프레임워크 기반의 애플리케이션 프론트엔드 구현
■ GopherJS 프레임워크와 동형 Go 웹 개발
■ Gin 프레임워크 기반의 RESTful 웹 API 개발
■ ORM 레이어와 보안 통신, 스트라이프 API 등의 유용한 백엔드 기술
■ Go 언어 기반의 웹 API 테스트와 벤치마킹
이 책의 대상 독자
Go 언어 기반의 풀스택 웹 애플리케이션 개발을 처음 시작하는 개발자를 위한 책이다.
이 책의 구성
1장, ‘풀스택 Go’에서는 이 책에서 다루는 주제를 살펴보고, 개발할 애플리케이션의 구조도 알아본다. 이 책에서 무엇을 배울지 전반적으로 소개한다.
2장, ‘Go 언어의 구성 요소’에서는 Go 언어 기반의 애플리케이션을 만드는 데 반드시 필요한 기본 개념을 설명한다. Go 언어의 변수 선언문과 조건문, 루프, 함수 등을 살펴본다. 자료 구조를 정의하고 메서드에서 사용하는 방법도 설명한다. 나아가 프로그램의 행위를 정의하는 인터페이스를 작성하는 방법도 알아본다.
3장, ‘Go 동시성 프로그래밍’에서는 Go 언어의 동시성을 설명한다. Go 언어가 지원하는 고루틴과 채널, select문 등을 알아보고 효율적인 동시성 프로그램 개발에 반드시 필요한 잠금과 대기 그룹(wait group)의 개념도 배운다.
4장, ‘리액트와 프론트엔드 개발’에서는 인기 있는 React.js 프레임워크의 구성 요소를 설명한다. 리액트 프레임워크의 핵심 요소인 리액트 컴포넌트를 살펴본다. 나아가 컴포넌트로 데이터를 전달하는 방법과 상태를 제어하는 방법, 리액트 개발 툴을 사용하는 방법을 배운다.
5장, ‘GoMusic 프론트엔드 개발’에서는 앞에서 학습한 내용을 바탕으로 GoMusic 애플리케이션의 프론트엔드를 구현한다. GoMusic에 필요한 리액트 컴포넌트를 만들고 개발 툴을 사용해 프론트엔드를 수정한다. 프론트엔드의 대부분을 구현한다.
6장, ‘Gin 프레임워크 기반 Go RESTful 웹 API’에서는 Gin 프레임워크와 RESTful 웹 API를 소개한다. Gin 프레임워크의 개념과 구성 요소를 알아보고 이를 사용해 웹 API를 작성한다. HTTP 요청 라우팅과 그룹핑의 개념도 알아본다.
7장, ‘Gin과 리액트 기반 고급 웹 애플리케이션’에서는 Gin 프레임워크와 웹 API의 심도 있는 주제를 설명한다. 미들웨어 사용과 사용자 인증, 로깅, 모델 바인딩 검증 등의 중요하고 실용적인 주제를 다룬다. ORM의 개념과 Go ORM을 사용해 웹 API 백엔드와 MySQL을 연결하는 방법을 학습한다. 앞에서 작성한 리액트 프론트엔드의 구현을 마무리하고 Go 백엔드와 연결하는 방법을 다룬다. 나아가 리액트 애플리케이션을 빌드하고 배포하는 방법을 알아본다.
8장, ‘웹 API 테스트와 벤치마킹’에서는 Go 애플리케이션을 테스트하고 벤치마킹하는 방법을 설명한다. 유닛 테스트를 작성할 때 사용하는 testing 패키지가 제공하는 타입과 메서드를 살펴본다. 이를 기반으로 앞서 작성한 코드를 벤치마킹하고 성능을 측정한다.
9장, ‘GopherJS와 동형 Go 프로그래밍 소개’에서는 프론트엔드를 Go 언어로 작성할 수 있도록 Go 코드를 자바스크립트 코드로 트랜스파일하는 GopherJS 오픈소스 프로젝트를 소개한다. 자바스크립트 대신 Go 언어로 프론트엔드를 구현해야 한다면 GopherJS를 권한다. GopherJS의 개념과 몇 가지 예제와 사용 사례를 살펴보고 GopherJS를 사용해 간단한 리액트 애플리케이션을 구현한다.
10장, ‘클라우드 네이티브 애플리케이션과 리액트 네이티브 프레임워크’에서는 이 책 이후에 나아갈 학습 방향을 제시한다. 클라우드 네이티브 아키텍처와 컨테이너의 개념과 리액트 네이티브를 사용한 모바일 앱 개발을 소개한다.
목차
목차
- 1부. Go 언어
- 1장. 풀스택 Go
- 풀스택 개발이란?
- 프로젝트
- 애플리케이션 구조
- 이 책의 구성
- 2장. Go 언어의 구성 요소
- 개발 환경 설정
- Go 플레이그라운드
- Go 워크스페이스 설정
- 패키지와 변수, 자료형, 포인터
- 패키지
- 변수와 자료형
- 포인터
- 함수와 클로저
- 함수: 기본 구조
- 함수: 다른 패키지 함수 호출
- 클로저
- Go 자료 구조
- 배열
- 슬라이스
- 맵
- 구조체
- 메서드
- 인터페이스
- 조건문과 반복문
- if문
- switch문
- 반복문
- Panic, recover, defer
- 요약
- 질문거리
- 더 읽을거리
- 개발 환경 설정
- 3장. Go 동시성 프로그래밍
- 동시성
- 고루틴
- Go 채널
- 일반 채널
- 버퍼 채널
- select 구문
- sync 패키지
- 간단한 뮤텍스
- 읽기-쓰기 뮤텍스
- 대기 그룹
- 요약
- 질문거리
- 더 읽을거리
- 2부. 프론트엔드
- 4장. React.js와 프론트엔드 개발
- 전제 조건과 기술적 요구 사항
- GoMusic 프로젝트
- Node.js와 npm
- HTML과 CSS, 부트스트랩
- 프로젝트 코드
- 리액트 프레임워크
- 리액트 애플리케이션 개발
- 프로젝트 설정
- JSX와 리액트 엘리먼트
- 리액트 컴포넌트
- 개발 툴
- 요약
- 질문거리
- 더 읽을거리
- 5장. GoMusic 프론트엔드 개발
- 준비물과 기술적 요구 사항
- GoMusic 만들기
- 메인 페이지
- 모달 윈도우와 신용카드 결제 처리
- 사용자 페이지
- 컴포넌트 연결: 라우팅
- 요약
- 질문거리
- 더 읽을거리
- 3부. Go 웹 API와 미들웨어
- 6장. Gin 프레임워크 기반 Go RESTful 웹 API
- 기술적 요구 사항
- RESTful API
- 개요
- HTTP 메서드
- Gin 프레임워크
- 모델과 데이터베이스 레이어
- Gin 프레임워크와 REST API 레이어 개발
- 라우팅 정의
- 핸들러 구현
- 정리
- 요약
- 질문거리
- 더 읽을거리
- 기술적 요구 사항
- 7장. Gin과 리액트 기반 고급 웹 애플리케이션
- 기술적 요구 사항
- 데이터베이스 레이어
- 관계형 데이터베이스
- ORM
- 미들웨어
- 커스텀 미들웨어
- 보안
- 인증서와 개인 키
- Gin 프레임워크와 HTTPS
- 패스워드 해싱
- 신용카드 결제
- 백엔드에서 신용카드 결제 요청 처리
- 프론트엔드 마무리
- 프론트엔드 구조
- 프론트엔드와 백엔드 연결
- 쿠키 사용
- 프론트엔드 애플리케이션 배포
- 요약
- 질문거리
- 더 읽을거리
- 8장. 웹 API 테스트와 벤치마킹
- Go 테스트
- 목킹
- Go 유닛 테스트
- 벤치마킹
- 요약
- 질문거리
- 더 읽을거리
- Go 테스트
- 9장. GopherJS와 동형 Go 프로그래밍 소개
- 기술적 요구 사항
- GopherJS 기초
- GopherJS 자료형
- Go 코드에서 자바스크립트 함수 호출
- GopherJS 명령어
- Go 바인딩
- 코드 익스포트
- 리액트와 GopherJS
- 프로젝트
- Go 기반의 리액트 애플리케이션
- 요약
- 질문거리
- 더 읽을거리
- 10장. 클라우드 네이티브 애플리케이션과 리액트 네이티브 프레임워크
- 클라우드 네이티브 애플리케이션
- 마이크로서비스
- 컨테이너
- 서버리스 애플리케이션
- 지속적인 배포
- 리액트 네이티브 프레임워크
- 리액트 네이티브란?
- 엑스포
- 요약
- 질문거리
- 클라우드 네이티브 애플리케이션
도서 오류 신고
정오표
정오표
[p.25 6행]
한구어판의
->
한국어판의
[p.205 9행]