Go 풀스택 웹 개발
Go와 리액트, Gin, GopherJS를 사용한 풀스택 웹 프로그래밍
Go 언어와 리액트를 사용한 풀스택 개발을 소개한다. 간단한 웹 서비스의 프론트엔드와 백엔드를 처음부터 순차적으로 구현한다. Go 언어의 기본 개념과 문법을 설명하고 고루틴과 채널 등의 동시성 프로그래밍 개념도 소개한다. 리액트 프레임워크를 사용해 프론트엔드를 개발하고 백엔드는 Go 기반의 Gin 프레임워크를 사용해 RESTful API 서버를 구축한다. 나아가 유닛 테스트와 벤치마킹을 통해 작성한 코드를 검증하는 방법을 소개한다. 프로그래밍의 기본 개념을 이해하고 개발 경험이 있는 초, 중급 개발자를 대상으로 한다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
■ 실제 애플리케이션 구현을 통한 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
__풀스택 개발이란?
__프로젝트
____애플리케이션 구조
__이 책의 구성
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 유닛 테스트
__벤치마킹
__요약
__질문거리
__더 읽을거리
9장. GopherJS와 동형 Go 프로그래밍 소개
__기술적 요구 사항
__GopherJS 기초
____GopherJS 자료형
____Go 코드에서 자바스크립트 함수 호출
____GopherJS 명령어
____Go 바인딩
____코드 익스포트
__리액트와 GopherJS
____프로젝트
____Go 기반의 리액트 애플리케이션
__요약
__질문거리
__더 읽을거리
10장. 클라우드 네이티브 애플리케이션과 리액트 네이티브 프레임워크
__클라우드 네이티브 애플리케이션
____마이크로서비스
____컨테이너
____서버리스 애플리케이션
____지속적인 배포
__리액트 네이티브 프레임워크
____리액트 네이티브란?
____엑스포
__요약
__질문거리
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

