Pro Go

Golang을 이용한 안정적이고 효율적인 소프트웨어
$56.70
SKU
9791161758169
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 05/17 - Thu 05/23 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 05/14 - Thu 05/16 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/01/30
Pages/Weight/Size 188*250*45mm
ISBN 9791161758169
Categories IT 모바일 > 프로그래밍 언어
Description
Go 언어에 관련한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머나 다른 프로그래밍 언어 경험이 있는 독자들을 대상으로 하는 책이다. Go 언어의 기본 개념부터 네트워크, 동시성, 테스트, gRPC, 제네릭 등의 주제들을 많은 실습 예제와 함께 소개한다. 3판에서는 2판에 비해 책의 두께를 줄였으며 더 자연스러운 흐름으로 재구성했다. 더 나은 Go 언어 개발자가 되고 싶다면 이 책이 도움을 줄 수 있을 것이다.
Contents
1부. Go 언어 이해

1장. 첫 번째 Go 애플리케이션
__시나리오 설정
__개발 도구 설치
____Git 설치
____코드 에디터 선택
__프로젝트 생성
__자료형과 컬렉션
__HTML 템플릿 생성
__템플릿 가져오기
__HTTP 핸들러와 서버 생성하기
__form 핸들링 함수 작성하기
__form 데이터 처리하기
__데이터 유효성 검사 추가하기
__요약

2장. 책의 내용과 구성
__왜 Go를 배워야 할까?
__Go의 단점은 무엇인가?
__Go를 사용하는 것이 후회될까?
__무엇을 알아야 할까?
__이 책의 구조는 어떻게 돼 있는가?
____1부: Go 언어 이해
____2부: Go 표준 라이브러리 사용
____3부: Go 활용
__이 책에서 다루지 않는 것은 무엇인가?
__이 책의 오류를 발견하면 어떻게 하면 되는가?
__예제가 많은가?
__예제에 필요한 소프트웨어는 무엇인가?
__예제를 실행하는 플랫폼은 무엇인가?
__예제를 따라가다 문제가 발생하면 어떻게 하는가?
__어디에서 예제 코드를 다운로드할 수 있는가?
__일부 예제에서 이상한 형식이 있는 이유는 무엇인가?
__저자와 어떻게 연락하는가?
__이 책에 대한 즐거움을 공유하고 싶은가?
__이 책에 분노를 느끼고 불평을 하고 싶은가?
__요약

3장. Go 도구 사용
__Go 명령어 사용
__Go 프로젝트 생성
____패키지 선언 이해
____import 문 이해
____함수 이해
____코드 실행문 이해
__소스 코드 컴파일 및 실행
____정리
____Go Run 명령어 사용
____모듈 정의
__Go 코드 디버깅
____디버거 준비
____디버거 사용
____Delve 에디터 플러그인 사용
__Go 코드 린팅
____린터 사용
____린터 규칙 비활성화
____린터 설정 파일 생성
__Go 코드 내 보편적인 문제 해결
__Go 포매팅 지정
__요약

4장. 기본 자료형, 값, 포인터
__4장 준비
__Go 표준 라이브러리 사용
__기본 자료형 이해
__리터럴 값 이해
__상수 사용
____타입 없는 상수 이해
____단일 코드 실행문으로 여러 상수 정의
____리터럴 값 재방문
__변수 사용
____변수 자료형 생략
____변수 값 할당 생략
____단일 코드 실행문으로 여러 변수 정의
____짧은 변수 선언 구문 사용
____변수를 재정의하기 위한 짧은 변수 구문 사용
__빈 식별자 사용
__포인터 이해
____포인터 정의
____포인터 역참조
____포인터 제로 값 이해
____포인터를 가리키는 포인터
____왜 포인터는 유용한가
____요약

5장. 연산과 변환
__5장 준비
__Go 연산자 이해
____산술 연산자 이해
____문자열 연결
____비교 연산자 이해
____논리 연산자 이해
__값 변환, 파싱, 포매팅
____명시적 타입 변환
____부동 소수점 값을 정수로 변환
____문자열 파싱
____문자열 값 포매팅
__요약

6장. 흐름 제어
__6장 준비
__흐름 제어 이해
__if 문 사용
____else 키워드 사용
____if 문 범위 이해
____if 문으로 초기화 문 사용
__for 루프 사용
____루프에 조건 통합
____초기화 및 완료 문 사용
____루프 지속
____시퀀스 열거
__switch 문 사용
____여러 값 일치
____다음 case 문으로 폴스루 강제 실행
____default 문 제공
____초기화 문 사용
____비교 값 생략
__라벨 문 사용
__요약

7장. 배열, 슬라이스, 맵 사용
__7장 준비
__배열 작업
____배열 리터럴 구문 사용
____배열 타입 이해
____배열 값 이해
____배열 비교
____배열 열거
__슬라이스 작업
____슬라이스에 항목 추가
____한 슬라이스를 다른 슬라이스에 추가
____배열에서 슬라이스 생성
____배열에서 슬라이스 생성할 때 용량 명시
____다른 슬라이스에서 슬라이스 생성
____copy 함수 사용
____슬라이스 항목 삭제
____슬라이스 열거
____슬라이스 정렬
____슬라이스 비교
____슬라이스 기반 배열
__맵 작업
____맵 리터럴 구문 사용
____맵 항목 확인
____맵 항목 제거
____맵 열거
__문자열의 이중 특성 이해
____문자열을 rune으로 변환
____문자열 열거
__요약

8장. 함수 정의 및 사용
__8장 준비
__간단한 함수 정의
__함수 매개변수 정의 및 사용
____매개변수 타입 생략
____매개변수 이름 생략
____가변 매개변수 정의
____함수 매개변수로 포인터 사용
__함수 결과 정의 및 사용
____여러 함수 결과 반환
__defer 키워드 사용
__요약

9장. 함수 타입 사용
__9장 준비
__함수 타입 이해
____함수 비교와 제로 타입 이해
____인수로 함수 사용
____결과로 함수 사용
__함수 타입 별칭 생성
__리터럴 함수 구문 사용
____함수 변수 범위 이해
____함수 값 직접 사용
____함수 클로저 이해
__요약

10장. 구조체 정의
__10장 준비
__구조체 정의 및 사용
____구조체 값 생성
____구조체 값 사용
____구조체 값 부분 할당
____필드 위치 사용해 구조체 값 생성
____임베디드 필드 정의
____구조체 값 비교
____익명 구조체 타입 정의
__구조체 값을 포함한 배열, 슬라이스, 맵 생성
__구조체와 포인터 이해
____구조체 포인터 편의 구문 이해
____포인터 값 이해
____구조체 생성자 함수 이해
____구조체 필드를 위한 포인터 타입 사용
____구조체 제로 값 및 구조체 포인터 이해
__요약

11장. 메서드 및 인터페이스 사용
__11장 준비
__메서드 정의 및 사용
____메서드 매개변수 및 결과 정의
____메서드 오버로딩 이해
____포인터와 값 리시버 이해
____타입 별칭으로 메서드 정의
__별도 파일에 타입 및 메서드 정의
__인터페이스 정의 및 사용
____인터페이스 정의
____인터페이스 구현
____인터페이스 사용
____포인터 메서드 리시버 효과 이해
__인터페이스 값 비교
__타입 단언 수행
____타입 단언 수행 전 테스트
____동적 타입에 대한 switch 문
__빈 인터페이스 사용
____함수 매개변수로 빈 인터페이스 사용
__요약

12장. 패키지 생성 및 사용
__12장 준비
__모듈 파일 이해
____사용자 정의 패키지 생성
____사용자 정의 패키지 사용
____패키지 접근 제어 이해
____패지지에 코드 파일 추가
____패키지 이름 충돌 해결
____중첩 패키지 생성
____패키지 초기화 함수 사용
__외부 패키지 사용
____외부 패키지 관리
__요약

13장. 타입 및 인터페이스 합성
__13장 준비
__타입 합성 이해
____기본 타입 정의
__타입 합성
____임베디드 타입 체인 생성
____동일 구조체 내 여러 임베디드 타입 사용
____승격 수행을 할 수 없는 상황 이해
__합성과 인터페이스 이해
____인터페이스 구현을 위한 합성 사용
____인터페이스 합성
__요약

14장. 고루틴 및 채널 사용
__14장 준비
__Go 코드 실행 방법 이해
__고루틴 추가 생성
__고루틴 결과 값 반환
____채널을 사용해 결과 값 전송
____채널을 사용해 결과 값 수신
__채널 작업
____채널 조정
____미정 개수 값 전송 및 수신
____채널 방향 제한
__select 문 사용
____블로킹 없는 수신
____여러 채널로 수신
____블로킹 없는 전송
____여러 채널로 전송
__요약

15장. 에러 처리
__15장 준비
__복구 가능한 에러 처리
____에러 생성
____채널을 통한 에러 보고
____에러 편의 함수 사용
__복구 불가능한 에러 처리
____패닉 복구
____복구 후 패닉
____고루틴 패닉 복구
__요약

2부. Go 표준 라이브러리 사용

16장. 문자열 및 정규식 처리
__16장 준비
__문자열 처리
____문자열 비교
____문자열 대소문자 변환
____문자 대소문자 작업
____문자열 검사
____문자열 조작
____문자열 변경
____문자열 형성 및 생성
__정규식 사용
____패턴 컴파일 및 재사용
____정규식을 사용한 문자열 분할
____하위 표현식 사용
____정규식을 사용한 부분 문자열 치환
__요약

17장. 문자열 포매팅 및 스캔
__17장 준비
__문자열 작성
__문자열 포매팅
____포매팅 동사 이해
____범용 포매팅 동사 사용
____정수 포매팅 동사 사용
____유동 소수점 포매팅 동사 사용
____문자열 및 문자 포매팅 동사 사용
____불린 포매팅 동사 사용
____포인터 포매팅 동사 사용
__문자열 스캔
____개행 문자 처리
____다른 문자열 소스 사용
____스캔 템플릿 사용
__요약

18장. 수학 함수와 데이터 정렬
__18장 준비
__숫자 작업
____난수 생성
__데이터 정렬
____숫자 및 문자열 슬라이스 정렬
____정렬 데이터 검색
____사용자 정의 자료형 정렬
__요약

19장. 날짜, 시간, 기간
__19장 준비
__날짜 및 시간 작업
____날짜 및 시간 표현
____기간 표현
__고루틴 및 채널에 시간 기능 사용
____고루틴 절전 모드 전환
____함수 실행 연기
____시간 지정 알림 수신
____반복 알림 수신
__요약

20장. 데이터 읽기 및 쓰기
__20장 준비
__Reader 및 Writer 이해
____Reader 이해
____Writer 이해
__Reader 및 Writer 유틸리티 함수 사용
__특수 Reader 및 Writer 사용
____파이프 사용
____다중 Reader 연결
____다중 Writer 연결
____Writer에 에코 읽기
____읽기 데이터 제한
__버퍼링 데이터
____버퍼링한 Reader 추가 메서드 사용
____버퍼 쓰기 수행
__Reader 및 Writer로 포매팅 및 스캔
____Reader에서 값 스캔
____Writer에 포매팅한 문자열 쓰기
____Writer로 Replacer 사용
__요약

21장. JSON 데이터 작업
__21장 준비
__JSON 데이터 읽기 및 쓰기
____JSON 데이터 인코딩
____JSON 데이터 디코딩
__요약

22장. 파일 작업
__22장 준비
__파일 읽기
____읽기 편의 함수 사용
____파일 구조체를 사용한 파일 읽기
__파일 쓰기
____쓰기 편의 함수 사용
____파일 구조체를 사용한 파일 쓰기
____JSON 데이터 파일 쓰기
__편의 함수를 사용한 새 파일 생성
__파일 경로 작업
__파일과 디렉터리 관리
__파일 시스템 탐색
____파일 존재 여부 확인
____패턴을 사용한 파일 찾기
____디렉터리 내 모든 파일 처리
__요약

23장. HTML 및 텍스트 템플릿 사용
__23장 준비
__HTML 템플릿 생성
____템플릿 로딩 및 실행
____템플릿 액션 이해
__텍스트 템플릿 생성
__요약

24장. HTTP 서버 생성
__24장 준비
__간단한 HTTP 서버 생성
____HTTP 리스너 및 핸들러 생성
____요청 검사
____요청 필터링 및 응답 생성
____응답 편의 함수 사용
____편의 라우팅 핸들러 사용
____HTTPS 요청 지원
__정적 HTTP 서버 생성
____정적 파일 경로 생성
__응답 생성을 위한 템플릿 사용
__JSON 데이터 응답
__폼 데이터 처리
____폼 데이터 요청 읽기
____멀티파트 폼 읽기
__쿠키 읽기 및 설정
__요약

25장. HTTP 클라이언트 생성
__25장 준비
__간단한 HTTP 요청 전송
____POST 요청 전송
__HTTP 클라이언트 요청 구성
____요청 생성을 위한 편의 함수 사용
____쿠키 작업
____리디렉션 관리
__멀티파트 폼 생성
__요약

26장. 데이터베이스 작업
__26장 준비
____데이터베이스 준비
__데이터베이스 드라이버 설치
__데이터베이스 열기
__스테이트먼트 및 쿼리 실행
____여러 행 쿼리
____플레이스홀더가 있는 명령문 실행
____단일 행 쿼리 실행
__기타 쿼리 실행
__프리페어드 스테이트먼트 사용
__트랜잭션 사용
__데이터를 구조체로 스캔하기 위한 리플렉션 사용
__요약

27장. 리플렉션 사용 - 1부
__27장 준비
__리플렉션 필요성 이해
__리플렉션 사용
____기초 타입 기능 사용
____기초 값 기능 사용
__타입 식별
____바이트 슬라이스 식별
__기본값 얻기
__리플렉션을 사용한 값 설정
____다른 값을 사용한 한 값 설정
__값 비교
____비교 편의 함수 사용
__값 변환
____숫자 타입 변환
__새 값 생성
__요약

28장. 리플렉션 사용 - 2부
__28장 준비
__포인터 작업
____포인터 값 작업
__배열 및 슬라이스 타입 작업
__배열 및 슬라이스 값 작업
____슬라이스 및 배열 열거
____기존 슬라이스에서 새 슬라이스 생성
____슬라이스 요소 생성, 복사, 추가
__맵 타입 작업
__맵 값 작업
____맵 값 설정 및 제거
____새 맵 생성
__구조체 타입 작업
____중복 필드 처리
____이름으로 필드 찾기
____구조체 태그 검사
____구조체 타입 생성
__구조체 값 작업
____구조체 필드 값 설정
__요약

29장. 리플렉션 사용 - 3부
__29장 준비
__함수 타입 작업
__함수 값 작업
____새 함수 타입과 값 생성 및 호출
__메서드 작업
____메서드 호출
__인터페이스 작업
____인터페이스의 기본 값 얻기
____인터페이스 메서드 검사
__채널 타입 작업
__채널 값 작업
__새 채널 타입 및 값 생성
__여러 채널 선택
__요약

30장. 고루틴 조정
__30장 준비
__대기 그룹 사용
__상호 배제 사용
____읽기-쓰기 뮤텍스 사용
__고루틴 조정을 위한 조건 사용
__함수 단일 실행 보장
__콘텍스트 사용
____요청 취소
____데드라인 설정
____요청 데이터 제공
__요약

31장. 단위 테스팅, 벤치마킹, 로깅
__31장 준비
__테스팅 사용
____단위 테스트 실행
____테스트 실행 관리
__코드 벤치마킹
____벤치마크 설정 제거
____서브 벤치마크 수행
__데이터 로깅
____커스텀 로거 생성
__요약

3부. Go 적용

32장. 웹 플랫폼 생성
__프로젝트 생성
__기본 플랫폼 기능 생성
____로깅 시스템 생성
____구성 시스템 생성
__서비스 관리를 위한 의존성 주입
____서비스 라이프사이클 정의
____내부 서비스 함수 정의
____서비스 등록 함수 정의
____서비스 해결 함수 정의
____서비스 등록 및 사용
__요약

33장 미들웨어, 템플릿, 핸들러
__요청 파이프라인 생성
____미들웨어 컴포넌트 인터페이스 정의
____요청 파이프라인 생성
____기본 컴포넌트 생성
____HTTP 서버 생성
____애플리케이션 구성
____서비스 해결 간소화
__HTML 응답 생성
____레이아웃 및 템플릿 생성
____템플릿 실행 구현
____템플릿 서비스 생성 및 사용
__요청 핸들러 소개
____URL 경로 생성
____핸들러 메서드를 위한 매개변수 값 준비
____요청 경로 매칭
__요약

34장. 액션, 세션, 인가
__액션 결과 도입
____공통 액션 결과 정의
____액션 결과 사용을 위한 플레이스홀더 업데이트
__템플릿에서 요청 핸들러 호출
____요청 처리 업데이트
____애플리케이션 구성
__경로에서 URL 생성
____URL 생성자 서비스 생성
__별칭 경로 정의
__요청 데이터 유효성 검사
____데이터 유효성 검사 수행
__세션 추가
____응답 데이터 쓰기 지연
____세션 인터페이스, 서비스, 미들웨어 생성
____세션 사용 핸들러 생성
____애플리케이션 구성
__사용자 인가 추가
____기본 인가 타입 정의
____플랫폼 인터페이스 구현
____액세스 제어 구현
____애플리케이션 플레이스홀더 기능 구현
____인증 핸들러 생성
____애플리케이션 구성
__요약

35장. SportsStore: 실제 애플리케이션
__SportsStore 프로젝트 생성
____애플리케이션 구성
__데이터 모델 시작
____리포지터리 인터페이스 정의
____(임시) 리포지터리 구현
__제품 리스트 표시
____템플릿 및 레이아웃 생성
____애플리케이션 구성
__페이지네이션 추가
__템플릿 콘텐츠 스타일링
____부트스트랩 CSS 파일 설치
____레이아웃 업데이트
____템플릿 콘텐츠 스타일링
__카테고리 필터링 지원 추가
____요청 핸들러 업데이트
____카테고리 핸들러 생성
____제품 리스트 템플릿 내 카테고리 내비게이션 표시
____핸들러 등록 및 별칭 업데이트
__요약

36장. SportsStore: 카트 및 데이터베이스
__쇼핑 카드 형성
____카트 모델 및 리포지터리 정의
____카트 요청 핸들러 생성
____카트에 제품 추가
____애플리케이션 구성
____카트 요약 위젯 추가
__데이터베이스 리포지터리 사용
____리포지터리 타입 생성
____데이터베이스 열기 및 SQL 명령어 로딩
____시드 정의 및 명령문 초기화
____기본 쿼리 정의
____페이징 쿼리 정의
____SQL 리포지터리 서비스 정의
____SQL 리포지터리 사용을 위한 애플리케이션 구성
__요약

37장. SportsStore: 결제 및 관리
__결제 프로세스 생성
____모델 정의
____리포지터리 확장
____임시 리포지터리 비활성화
____리포지터리 메서드 및 명령어 정의
____요청 핸들러 및 템플릿 생성
__관리 기능 생성
____제품 관리 기능 생성
____카테고리 관리 기능 생성
__요약

38장. SportsStore: 마무리 및 배포
__관리 기능 완성
____리포지터리 확장
____요청 핸들러 구현
____템플릿 생성
__관리 기능 접근 제한
____사용자 스토어 및 요청 핸들러 생성
____애플리케이션 구성
__웹 서비스 생성
__배포 준비
____인증서 설치
____애플리케이션 구성
____애플리케이션 빌드
____도커 데스크톱 설치
____도커 구성 파일 생성
__요약
Author
애덤 프리먼,김지원
경험이 풍부한 IT 전문가로 다양한 회사에서 고위직을 역임했다. 가장 최근에는 글로벌 은행의 최고기술책임자(CTO) 및 최고운영책임자(COO)를 역임했다. 지금은 은퇴하고 글쓰기와 장거리 달리기에 시간을 보내고 있다.
경험이 풍부한 IT 전문가로 다양한 회사에서 고위직을 역임했다. 가장 최근에는 글로벌 은행의 최고기술책임자(CTO) 및 최고운영책임자(COO)를 역임했다. 지금은 은퇴하고 글쓰기와 장거리 달리기에 시간을 보내고 있다.