logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

Go 마스터하기 3/e

Go 마스터하기 3/e

(실습 예제와 함께 배우는 네트워크, 동시성, 테스트, gRPC 및 제네릭)

미할리스 추칼로스 (지은이), 허성연 (옮긴이)
에이콘출판
45,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
40,500원 -10% 0원
2,250원
38,250원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 36,000원 -10% 1800원 30,600원 >

책 이미지

Go 마스터하기 3/e
eBook 미리보기

책 정보

· 제목 : Go 마스터하기 3/e (실습 예제와 함께 배우는 네트워크, 동시성, 테스트, gRPC 및 제네릭)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9791161756882
· 쪽수 : 876쪽
· 출판일 : 2022-10-31

책 소개

Go 언어에 관련한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머나 다른 프로그래밍 언어 경험이 있는 독자들을 대상으로 하는 책이다.

목차

01장. Go의 간략한 소개
__Go 소개
____Go의 역사
____윈도우가 아니라 유닉스인 이유
____Go의 장점
____go doc과 godoc 유틸리티
__Hello World!
____함수 소개
____패키지 소개
__Go 코드 실행
____Go 코드 컴파일
____Go를 스크립트 언어처럼 사용
____중요한 형식과 코딩 규칙
__Go의 중요한 특성
____변수 선언과 사용
______변수 출력
____프로그램 흐름 제어
____for 루프와 range로 반복
____사용자 입력받기
____표준 입력 읽기
______커맨드라인 인수 사용
____에러 변수로 입력 타입 구분
____Go의 동시성 모델 이해
__Go로 which(1) 개발
__정보 로깅
____log.Fatal()과 log.Panic()
____커스텀 로그 파일 작성
____로그 항목에 줄 번호 츨력
__제네릭 개요
__기초적인 전화번호부 애플리케이션 개발
__연습문제
__요약
__참고 자료

02장. 기본 타입
__error 타입
__숫자 데이터 타입
__숫자가 아닌 데이터 타입
____문자열, 문자, 룬
______정수를 문자열로 변환
______unicode 패키지
______strings 패키지
____날짜와 시간
______날짜와 시간을 파싱하는 유틸리티
______타임 존 다루기
__Go 상수
____상수 생성기 iota
__비슷한 데이터 모으기
____배열
____슬라이스
______슬라이스 길이와 용량
______슬라이스의 일부분 선택
______바이트 슬라이스
______슬라이스에서 원소 삭제
______배열과 슬라이스의 관계
______copy() 함수
______슬라이스 정렬
__포인터
__난수 생성
____랜덤한 문자열 생성
____안전한 난수 생성
__전화번호부 애플리케이션 업데이트
__연습문제
__요약
__참고 자료

03장. 합성 데이터 타입
__맵
____nil 맵에 저장
____맵 반복
__구조체
____새 구조체 정의
____new 키워드 사용
____구조체의 슬라이스
__정규표현식과 패턴 매칭
____Go 정규표현식
____이름과 성 매칭
____정수 매칭
____레코드의 필드 매칭
__전화번호부 애플리케이션 개선
____CSV 파일 다루기
____인덱스 추가
____전화번호부 애플리케이션의 개선된 버전
__연습문제
__요약
__참고 자료

04장. 리플렉션과 인터페이스
__리플렉션
____Go 구조체의 내부
____리플렉션을 이용해 구조체 값 바꾸기
____리플렉션의 세 가지 단점
__타입 메서드
____타입 메서드 생성
____타입 메서드 사용
__인터페이스
____sort.Interface 인터페이스
____빈 인터페이스
____타입 단언과 타입 스위치
____map[string]interface{} 맵
____에러 타입
____나만의 인터페이스 만들기
______Go 인터페이스 사용
______3차원 형태 데이터에서 sort.Interface 구현
__두 가지 CSV 파일 포맷 다루기
__Go의 객체지향 프로그래밍
__전화번호부 애플리케이션 업데이트
____CSV 파일 값 설정
____sort 패키지 사용
__연습문제
__요약
__참고 자료

05장. 패키지와 함수
__Go 패키지
____Go 패키지 다운로드
__함수
____익명 함수
____여러 값을 반환하는 함수
____함수의 반환값에도 이름을 붙일 수 있다.
____함수를 매개변수로 받는 함수
____함수를 반환하는 함수
____가변 인수 함수
____defer 키워드
__Go 패키지 직접 만들기
____init() 함수
____실행 순서
__깃허브에 Go 패키지 저장
__데이터베이스를 다루는 Go 패키지
____데이터베이스 이해
____Go 패키지 저장
____Go 패키지의 설계
____Go 패키지 구현
____Go 패키지 테스트
__모듈
__Go 패키지를 잘 만드는 방법
__문서화
__깃랩 러너
____초기 설정 파일
____최종 설정 파일
__깃허브 액션
____깃허브에 시크릿 저장
____최종 설정 파일
__버전 부여
__연습문제
__요약
__참고 자료

06장. 유닉스 시스템에게 작업 지시
__stdin, stdout, stderr
__유닉스 프로세스
__유닉스 시그널 처리
____두 가지 시그널 처리
__파일 입출력
____io.Reader와 io.Writer 인터페이스
____io.Reader와 io.Writer의 사용과 오용
____버퍼를 이용한 파일 입출력과 버퍼를 이용하지 않는 파일 입출력
__텍스트 파일 읽기
____줄 단위로 텍스트 파일 읽기
____단어 단위로 텍스트 파일 읽기
____문자 단위로 텍스트 파일 읽기
____/dev/random 읽기
____파일에서 원하는 만큼만 데이터 읽기
__파일 쓰기
__JSON 데이터 다루기
____Marshal()과 Unmarshal()
____구조체와 JSON
____스트림 형태로 JSON 데이터 읽고 쓰기
____JSON 레코드 출력 다듬기
__XML 다루기
____JSON과 XML 변환
__YAML 다루기
__viper 패키지
____커맨드라인 플래그 사용
____JSON 설정 파일 읽기
__cobra 패키지
____세 개의 커맨드가 있는 유틸리티
____커맨드라인 플래그 추가
____커맨드 앨리어스 생성
____하위 커맨드 생성
__유닉스 파일 시스템에서 순환 참조 찾기
__Go 1.16의 새로운 기능
____파일 임베딩
____ReadDir과 DirEntry
____io/fs 패키지
__전화번호부 애플리케이션 업데이트
____cobra 사용
____JSON 데이터 저장하고 읽기
____delete 커맨드 구현
____insert 커맨드 구현
____list 커맨드 구현
____search 커맨드 구현
__연습문제
__요약
__참고 자료


07장. Go의 동시성
__프로세스, 스레드, 고루틴
__Go 스케줄러
____GOMAXPROCS 환경 변수
____동시성과 병렬성
__고루틴
____고루틴 생성
____고루틴 여러 개 생성
____고루틴이 끝날 때까지 기다리기
____Add()와 Done()의 호출 횟수가 일치하지 않는 경우
____고루틴으로 여러 파일 생성
__채널
____채널에 데이터 쓰고 읽기
____닫힌 채널에서 데이터 받기
____함수 매개변수로 지정한 채널
__경쟁 상태
____Go 경쟁 상태 감지기
__select 키워드
__고루틴 타임아웃
____main() 내부에서 고루틴 타임아웃
____main() 바깥에서 고루틴 타임아웃
__Go 채널 다시 보기
____버퍼 채널
____nil 채널
____워커 풀
____시그널 채널
______고루틴의 실행 순서 지정
__공유 메모리와 공유 변수
____sync.Mutex 타입
______뮤텍스를 해제하는 것을 잊어버렸을 경우
____sync.RWMutex 타입
____atomic 패키지
____고루틴으로 메모리 공유
__클로저 변수와 go 구문
__context 패키지
____context를 키/값 저장소로 사용
__semaphore 패키지
__연습문제
__요약
__참고 자료

08장. 웹 서비스 만들기
__net/http 패키지
____http.Response 타입
____http.Request 타입
____http.Transport 타입
__웹 서버 생성
__전화번호부 애플리케이션 업데이트
____API 정의
____핸들러 구현
__프로메테우스로 메트릭 노출
____runtime/metrics 패키지
____메트릭 노출
______Go 서버의 도커 이미지 생성
______메트릭 노출
____메트릭 읽기
____프로메테우스에 메트릭 넣기
____그라파나에서 프로메테우스 메트릭 시각화
__웹 클라이언트 개발
____http.NewRequest()를 사용해 클라이언트 개선
____전화번호부 서비스의 클라이언트 만들기
__파일 서버 만들기
____전화번호부 애플리케이션에서 다운로드하기
__HTTP 연결 타임아웃 설정
____SetDeadline() 사용
____클라이언트에서 타임아웃 설정
____서버에서 타임아웃 설정
__연습문제
__요약
__참고 자료

09장. TCP/IP와 웹소켓
__TCP/IP
____nc(1) 커맨드라인 유틸리티
__net 패키지
__TCP 클라이언트 개발
____net.Dial()을 이용한 TCP 클라이언트 개발
____net.DialTCP()를 이용해 TCP 클라이언트 개발
__TCP 서버 개발
____net.Listen()을 이용한 TCP 서버 개발
____net.ListenTCP()를 사용한 TCP 서버 개발
__UDP 클라이언트 개발
__UDP 서버 개발
__동시성 있는 TCP 서버 개발
__유닉스 도메인 소켓
____유닉스 도메인 소켓 서버
____유닉스 도메인 소켓 클라이언트
__웹소켓 서버 개발
____서버 구현
______websocat 사용
______자바스크립트 사용
__웹소켓 클라이언트 개발
__연습문제
__요약
__참고 자료

10장. REST API
__REST 소개
__RESTful 서버 및 클라이언트 개발
____RESTful 서버
____RESTful 클라이언트
__실제로 작동하는 RESTful 서버 개발
____REST API
____gorilla/mux
____서브라우터 사용
____데이터베이스 사용
____restdb 테스트
____RESTful 서버 구현
____RESTful 서버 테스트
______GET 핸들러 테스트
______POST 핸들러 테스트
______PUT 핸들러 테스트
______DELETE 핸들러 테스트
__RESTful 클라이언트
____커맨드라인 클라이언트 구조 갖추기
____RESTful 클라이언트 커맨드 구현
____RESTful 클라이언트 사용
____여러 REST API 버전 사용
__바이너리 파일 업로드와 다운로드
__REST API 문서화를 위한 스웨거
____REST API 문서화
____문서 파일 생성
____문서 파일 제공
__연습문제
__요약
__참고 자료

11장. 코드 테스팅과 프로파일링
__코드 최적화
__코드 벤치마킹
____더 나은 테스트를 위한 main() 함수 재작성
____쓰기 및 읽기 버퍼 벤치마킹
____benchstat 유틸리티
____잘못 작성한 벤치마크 함수
__코드 프로파일링
____커맨드라인 애플리케이션 프로파일링
____HTTP 서버 프로파일링
____Go 프로파일러의 웹 인터페이스
__go tool trace 유틸리티
____클라이언트에서 웹 서버 추적
____웹 서버의 모든 경로 방문
__Go 코드 테스트
____./ch03/intRE.go 테스트 작성
____TempDir() 함수
____CleanUp() 함수
____testing/quick 패키지
____테스트 타임아웃
____코드 커버리지 테스트
____도달할 수 없는 코드 찾기
__데이터베이스 백엔드를 갖춘 HTTP 서버 테스트
__퍼즈 테스트
__크로스컴파일
__go:generate
__예제 함수 생성
__연습문제
__요약
__참고 자료

12장. gRPC
gRPC 소개
____프로토콜 버퍼
__인터페이스 정의 언어 파일 작성
__gRPC 서버 개발
__gRPC 클라이언트 개발
____클라이언트를 이용한 gRPC 서버 테스트
__연습문제
__요약
__참고 자료

13장. 제네릭
__제네릭 소개
__제약 조건
____제약 조건 만들기
__제네릭을 이용한 데이터 타입 정의
____Go 구조체에서의 제네릭 사용
__인터페이스와 제네릭
__리플렉션과 제네릭
__연습 문제
__요약
__참고 자료

부록A. Go 가비지 컬렉터
__힙과 스택
__가비지 컬렉션
____삼색 알고리듬
____Go 가비지 컬렉터의 상세한 동작 방식
____맵, 슬라이스와 Go 가비지 컬렉터
______슬라이스 사용
______맵에 포인터 사용
______포인터를 사용하지 않는 맵 사용
______맵 나누기
____예제 성능 비교
__참고 자료

저자소개

미할리스 추칼로스 (지은이)    정보 더보기
기술 관련 글쓰기를 좋아하는 유닉스 시스템 엔지니어다. 『Go Systems Programming』(Packt, 2017)과 『Go 마스터하기』(에이콘, 2018), 『Go 마스터하기 2/e』(에이콘, 2021)의 저자이기도 하다. 파트라스대학교(University of Patras)에서 수학 학사 학위를 받았으며 유니버시티 칼리지 런던(University College London)에서 IT 관련 석사 학위도 받았다. 지금까지 「Sys Admin」, 「MacTech」, 「Linux User and Developer」, 「Usenix;login:」, 「Linux Format」, 「Linux Journal」 등의 여러 저널에 300여 편 이상의 글을 기고했다. 주요 관심 분야는 시계열, 데이터베이스, 인덱스다. https://www.mtsoukalos.eu/와 @mactsouk에서 직접 만나볼 수 있다.
펼치기
허성연 (옮긴이)    정보 더보기
서울대학교 컴퓨터공학부를 졸업했다. 현재 당근마켓에서 소프트웨어 엔지니어로 근무하고 있으며, Go 언어를 이용해 각종 서비스들을 만들고 있다. 개발 관련 주제라면 밤새 떠들 수 있고, 소프트웨어 기술로 사람들의 문제를 해결하고 싶다. 취미로 수영하는 것을 즐긴다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791161757049