본문내용 바로가기
MD의선택 무료배송 이벤트 사은품 소득공제

Go 마스터하기 동시성, 네트워크, 머신러닝, 컴파일러 등 고급 기능의 실습과 활용

2판
미할리스 추칼로스 지음 | 남기혁 옮김 | 에이콘출판 | 2021년 06월 10일 출간
클로버 리뷰쓰기

이 책의 다른 상품 정보

  • 정가 : 50,000원
    판매가 : 45,000 [10%↓ 5,000원 할인]
  • 혜택 :
    [기본적립] 2500원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 개정정보 : 이 도서는 가장 최근에 출간된 개정판입니다. 2018년 10월 출간된 구판이 있습니다. 구판 보기
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘(21일,금) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • IT 개발서적 2만원 이상 구매 시 개발자 매거진 <리드잇..
    2022.01.10 ~ 2022.02.28
  • 에이콘 도서 3만원 이상 구매 시 메모리게임 카드pack 선택가..
    2022.01.10 ~ 2022.02.09
  • 행사도서 포함 2만원 이상 구매시 TIL 큐브 포스트잇 선택 가..
    2022.01.10 ~ 2022.02.06
  • 다른 개발자들은 무슨 책 읽고 있을까?
    2021.12.02 ~ 2022.12.31
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
상품상세정보
ISBN 9791161755311(1161755314)
쪽수 1020쪽
크기 188 * 234 * 54 mm /1807g 판형알림
이 책의 원서/번역서 Mastering Go - Second Edition / Tsoukalos, Mihalis

책소개

이 책이 속한 분야

이 책의 주제어

Go 언어의 기본 개념부터 동시성, 네트워크, 머신러닝, 고급 데이터 구조에 이르기까지 방대한 주제를 실습 예제와 함께 소개한다. 1판의 내용 중 도커와 쿠버네티스, 깃, 웹어셈블리, JSON, gRPC 등을 보강했으며, 머신러닝 관련 내용을 새롭게 추가했다. 이 책을 통해 Go 언어의 기초뿐만 아니라, 실전에서 활용할 수 있는 다양한 기술을 배울 수 있다. Go 언어를 제대로 배우고 싶다면 이 책은 전문가 수준에 이르기 위한 필독서다.

작가의 말

지금 읽고 있는 책은 뛰어난 Go 언어 개발자가 되게 도와주기 위한 책이다.
2판에는 Go 언어로 머신러닝을 구현하는 방법과 Viper, Cobra Go 패키지, gRPC, 도커 이미지 다루기, YAML 파일 다루기, go/scanner와 go/token 패키지 사용법, 웹어셈블리 코드 생성하기를 비롯해서 1판에는 없던 내용이 새롭게 추가됐다.
Go 프로그래밍 언어는 미래의 고성능 시스템용 언어다. 흔히 고랭(Golang)이라고도 부르는데, 공식 명칭은 아니다. 이 책은 선풍적인 인기를 얻은 초판을 개선해서 생산성 높은 고급 Go 프로그래머로 성장하는 데 도움을 주고자 집필했다. 이 책에서는 Go 언어를 실전에서 활용하는 방법을 제시한다. Go 언어의 기초를 아는 독자라면 이 책의 예제 및 패턴과 명쾌한 설명으로 Go의 능력을 더욱 키우고 현업에 적용할 수 있을 것이다. Go 언어에서의 타입과 구조체, 패키지, 동시성, 네트워크 프로그래밍, 컴파일러 설계, 최적화를 비롯한 깊이 있는 주제를 다양하게 다룬다. 각 장마다 연습문제와 참고 자료를 제공해 새로 배운 내용을 확실히 다질 수 있다.
- 저자 미할리스 추칼로스

초판 번역을 한 지 불과 2년이 안 된 지금, 급격히 성장한 Go 언어와 생태계가 놀랍습니다. C, C++, Java, Python을 비롯한 주요 언어의 각자 주력 분야를 제외한 나머지 영역을 Go가 하나둘씩 빼가는 느낌입니다. 그래서 이 책처럼 다양한 주제를 실습 예제 위주로 훑어보면 흥미를 유지하면서 꾸준히 Go 언어를 익히기에 좋은 것 같습니다.
이번 번역도 예전 책과 마찬가지로 빠른 이해와 의미 전달에 우선순위를 뒀습니다. 변화의 속도에 발맞추기가 중요한 만큼 빠른 이해를 위해 의도적으로 음차 표기를 선택한 용어도 많습니다. 그래서 독자 입장에서 아쉬운 부분은 얼마든지 나올 수 있다는 점에 대해 미리 양해를 구합니다.
- 역자 남기혁

목차

지은이 소개
기술 감수자 소개
옮긴이 소개
옮긴이의 말
들어가며

1장. Go와 OS

__Go 언어의 역사
__Go 현황
__Go 언어의 장점
____Go 언어는 완벽한가?
______전처리기란?
____godoc 유틸리티
__Go 코드 컴파일
__Go 코드 실행
__Go 언어의 두 가지 규칙
____사용할 패키지만 임포트
____중괄호 작성 방식
__Go 패키지 다운로드
__유닉스 stdin, stdout, stderr
__화면에 출력
__표준 출력 사용
__사용자 입력받기
____:=와 =
____표준 입력으로 읽기
____커맨드라인 인수 다루기
__에러 출력 방법
__로그 파일 작성
____로그 수준
____로그 종류
____로그 서버
____로그 파일로 정보를 보내는 Go 프로그램
____log.Fatal()
____log.Panic()
____커스텀 로그 파일 작성
____로그 항목에 줄번호 출력
__Go 언어에서 에러 처리
____error 데이터 타입
____에러 처리
__도커 사용
__참고 자료
__연습문제
__요약


2장. Go 내부

__Go 컴파일러
__가비지 컬렉션
____삼색 알고리즘
____Go 언어에서 가비지 컬렉터의 구체적인 작동 방식
____가비지 컬렉터에서 주의해야 할 맵과 슬라이스 연산
______슬라이스 사용
______맵에 포인터 사용
______맵에 포인터가 아닌 값 사용
______맵 나누기
______예제 성능 비교
____언세이프 코드
____unsafe 패키지
____unsafe 패키지에 대한 또 다른 예제
____Go에서 C 코드 호출
____같은 파일에 작성한 C 코드 호출
____다른 파일에 작성한 C 코드 호출
____C 코드
____Go 코드
____Go 코드와 C 코드 합치기
__C 코드에서 Go 함수 호출
____Go 패키지
____C 코드
__defer 키워드
____로깅에 defer 사용
__panic 함수와 recover 함수
____panic 함수만 사용
__두 가지 유용한 유닉스 유틸리티
____strace
____dtrace
__Go 환경 파악
__go env 명령
__Go 어셈블러
__노드 트리
__go build에 대해 좀 더 살펴보기
__웹어셈블리 코드 생성
____웹어셈블리의 간단한 소개
____웹어셈블리가 중요한 이유
____Go와 웹어셈블리
____웹어셈블리 생성 방법
____생성된 웹어셈블리 코드 사용
__Go 프로그래밍 관련 팁
__참고 자료
__연습문제
__요약


3장. 기본 타입

__숫자 타입
____정수
____부동소수점 수
____복소수
____Go 2의 숫자 리터럴
__Go 루프
____for 루프
____while 루프
____range 키워드
____Go의 다양한 루프문
__Go 배열
____다차원 배열
____Go 배열의 단점
__Go 슬라이스
____슬라이스에 대한 기본 연산
____슬라이스는 자동으로 확장된다
____바이트 슬라이스
____copy() 함수
____다차원 슬라이스
____다차원 슬라이스 예제
____sort.Slice()로 슬라이스 정렬
____슬라이스에 배열 추가
__맵
____nil 맵에 저장
____맵을 사용해야 할 때
__Go 상수
____상수 생성자 iota
__Go 포인터
____포인터를 사용하는 이유
__날짜와 시간
____시간 처리
____시간 파싱
____날짜 처리
____날짜 파싱
____날짜와 시간 포맷 변경
__실행 시간 측정
____Go 가비지 컬렉터 실행 시간 측정
__참고 자료
__연습문제
__요약


4장. 합성 타입 사용

__합성 타입
__구조체
____구조체에 대한 포인터
____new 키워드 사용
__튜플
__정규 표현식과 패턴 매칭
____정규 표현식에 관련된 몇 가지 이론
____간단한 예제
____좀 더 어려운 예제
____IPv4 주소 매칭
__스트링
____룬이란?
____unicode 패키지
____strings 패키지
__switch문
__파이 값 정확하게 계산
__Go 언어로 키-값 스토어 구현
__Go와 JSON
____JSON 데이터 읽기
____JSON 데이터 저장
____Marshal()과 Unmarshal()
____JSON 데이터 파싱
____Go와 XML
____XML 읽기
____XML 출력 커스터마이즈
__Go와 YAML 포맷
__참고 자료
__연습문제
__요약


5장. 데이터 구조로 Go 코드 개선

__그래프와 노드
__알고리즘 복잡도
__Go 언어에서의 이진트리
____Go 언어로 이진트리 구현
____이진트리의 장점
__해시 테이블
____Go 언어로 해시 테이블 구현
____검색 기능 구현
____해시 테이블의 장점
__연결 리스트
____연결 리스트 구현
____연결 리스트의 장점
__이중 연결 리스트
____이중 연결 리스트 구현
__이중 연결 리스트의 장점
____Go에서의 큐
__큐 구현
__Go에서의 스택
____스택 구현
__container 패키지
____container/heap 사용법
____container/list 사용법
____container/ring 사용법
__난수 생성
____무작위 스트링 생성
__보안에 안전한 유사 난수 생성
__행렬 계산
____행렬 덧셈과 뺄셈
____행렬 곱셈
____행렬 나눗셈
______배열의 크기를 알아내는 방법
__수도쿠 퍼즐 풀기
__참고 자료
__연습문제
__요약


6장. 패키지와 함수

__Go 패키지
__Go 언어의 함수
____익명 함수
____여러 값을 리턴하는 함수
____함수의 리턴 값에도 이름을 붙일 수 있다
____포인터를 매개변수로 받는 함수
____포인터를 리턴하는 함수
____함수를 리턴하는 함수
____함수를 매개변수로 받는 함수
____가변 인수 함수
__Go 패키지 직접 만들기
____Go 패키지 컴파일
____사설 변수와 함수
____init() 함수
__Go 모듈
____Go 모듈 생성과 사용
______버전 v1.0.0 생성
______버전 v1.0.0 사용
______v1.1.0 생성
______v1.1.0 버전 사용
______v2.0.0 버전 생성
______v2.0.0 버전 사용
______v2.1.0 생성
______v2.1.0 버전 사용
____Go 모듈을 두 가지 버전으로 사용
____Go 모듈이 저장되는 위치
____go mod vendor 명령
__Go 패키지를 잘 만드는 방법
__syscall 패키지
____fmt.Println()의 내부 실행 과정
__go/scanner, go/parser, go/token 패키지
____go/ast 패키지
____go/scanner 패키지
____go/parser 패키지
____현실적인 예제
____스트링 길이를 입력받아 변수 이름 검색
__텍스트와 HTML 템플릿
____텍스트 출력 생성
____HTML 출력
__기본적인 SQLite3 명령
__참고 자료
__연습문제
__요약


7장. 리플렉션과 인터페이스

__타입 메서드
__인터페이스
____타입 어써션
__인터페이스 직접 작성
____Go 인터페이스 사용
____인터페이스와 데이터 타입에 대한 switch문 작성법
__리플렉션
____리플렉션에 대한 간단한 예제
____리플렉션에 대한 좀 더 복잡한 예제
____리플렉션의 단점 세 가지
____reflectwalk 라이브러리
__Go에서의 객체지향 프로그래밍
__깃과 깃허브
____깃 사용법
______git status
______git pull
______git commit
______git push
______브랜치 작업
______파일 다루기
______.gitignore 파일
______git diff
______태그 다루기
______git cherry-pick
__Delve로 디버깅
____디버깅 예
__참고 자료
__연습문제
__요약


8장. 유닉스 시스템에 작업 지시

__유닉스 프로세스
__flag 패키지
__viper 패키지
____viper를 사용하는 간단한 예
____flag 사용 코드를 viper 사용 코드로 변경
____JSON 설정 파일 읽기
____YAML 설정 파일 읽기
__cobra 패키지
____간단한 cobra 예제
____명령 앨리어스 생성
__io.Reader와 io.Writer 인터페이스
____버퍼를 이용한 파일 입출력과 버퍼를 이용하지 않는 파일 입출력
__bufio 패키지
__텍스트 파일 읽기
____텍스트 파일을 한 줄씩 읽기
____텍스트 파일을 한 단어씩 읽기
____텍스트 파일을 한 문자씩 읽기
____/dev/random 읽기
__파일에서 원하는 만큼 읽기
__바이너리 포맷의 장점
__CSV 파일 읽기
__파일에 쓰기
__디스크에 데이터를 읽거나 쓰기
__strings 패키지 다시 보기
__bytes 패키지
__파일 접근 권한
__유닉스 시그널 처리
____두 가지 시그널 처리
____모든 종류의 시그널 처리
__Go에서의 유닉스 파이프
____Go 언어로 cat(1) 유틸리티 구현
__syscall.PtraceRegs
__시스템 콜 추적
__유저 ID와 그룹 ID
__도커 API와 Go
__참고 자료
__연습문제
__요약


9장. Go 언어의 동시성: 고루틴, 채널, 파이프라인

__프로세스, 스레드, 고루틴
____Go 스케줄러
____동시성과 병렬성
__고루틴
____고루틴 생성 방법
____고루틴 여러 개 생성
__고루틴을 마칠 때까지 기다리기
____Add()와 Done()의 호출 횟수가 일치하지 않은 경우
__채널
____채널에 데이터 쓰기
____채널에서 데이터 읽기
____닫힌 채널에서 받기
____함수 매개변수로 지정한 채널
__파이프라인
__경쟁 상태
__Go와 Rust의 동시성 모델 비교
__Go와 Erlang의 동시성 모델 비교
__참고 자료
__연습문제
__요약


10장. Go 언어의 동시성: 고급 주제

__Go 스케줄러 다시 보기
____GOMAXPROCS 환경 변수
__select 키워드
__고루틴 만료시키기
____고루틴을 만료시키기 위한 첫 번째 기법
____고루틴을 만료시키기 위한 두 번째 방법
__Go 채널 다시 보기
____시그널 채널
____버퍼 채널
____nil 채널
____채널에 대한 채널
____고루틴의 실행 순서 지정
____고루틴을 사용하면 안 되는 경우
__공유 메모리와 공유 변수
____sync.Mutex
______뮤텍스를 언락하는 것을 까먹은 경우
____sync.RWMutex
____atomic 패키지
____고루틴으로 메모리 공유
__go문 다시 보기
__경쟁 상태 발견
__context 패키지
____context 패키지를 이용한 좀 더 복잡한 예제
____context 패키지의 또 다른 예
____워커 풀
__참고 자료
__연습문제
__요약


11장. 코드 테스팅, 최적화, 프로파일링

__최적화
__Go 코드 최적화
__Go 코드 프로파일링
____표준 Go 패키지 net/http/pprof
____간단한 프로파일링 예제
____좀 더 편리한 외부 패키지로 프로파일링
____Go 프로파일러의 웹 인터페이스
______웹 인터페이스를 이용한 프로파일링 예제
______그래피즈 간략 소개
__go tool trace 유틸리티
__Go 코드 테스트
____기존 코드에 대한 테스트 코드 작성
____코드 커버리지 테스트
__데이터베이스 백엔드를 갖춘 HTTP 서버 테스트
____testing/quick 패키지
______테스트 실행이 너무 오래 걸리거나 끝나지 않는 경우
__Go 코드 벤치마킹
__간단한 벤치마킹 예제
____잘못 작성한 벤치마크 함수의 예
__쓰기 버퍼 벤치마킹
__실행되지 않는 코드 찾기
__크로스컴파일
__예제 함수 만들기
__Go 코드를 머신 코드로 변환
____Go에서 어셈블리 사용
__문서 생성
__도커 이미지 사용법
__참고 자료
__연습문제
__요약


12장. Go 언어를 이용한 네트워크 프로그래밍의 기초

__net/http, net, http.RoundTripper
____http.Response 타입
____http.Request 타입
____http.Transport 타입
__TCP/IP
__IPv4와 IPv6
__nc(1) 커맨드라인 유틸리티
__네트워크 인터페이스에서 설정 읽기
__DNS 룩업
____도메인의 NS 레코드 조회
____도메인에 대한 MX 레코드 조회
__Go 언어로 웹 서버 만들기
____atomic 패키지 사용
____HTTP 서버 프로파일링
____Go 언어로 웹 사이트 만들기
__HTTP 트레이싱
____HTTP 핸들러 테스트
__Go 언어로 웹 클라이언트 생성
____좀 더 기능이 풍부한 웹 클라이언트 만들기
__HTTP 연결 타임아웃 지정
____SetDeadline에 대한 상세한 사항
____타임아웃 주기를 서버 측에 설정
____또 다른 타임아웃 기법
__와이어샤크와 티샤크
__gRPC
____인터페이스 정의 파일 정의
____gRPC 클라이언트
____gRPC 서버
__참고 자료
__연습문제
__요약


13장. 네트워크 프로그래밍: 서버와 클라이언트 개발

__HTTPS 트래픽 다루기
____인증서 생성
____HTTPS 클라이언트
____간단한 HTTPS 서버
____TLS 서버와 클라이언트 개발
__표준 Go 패키지 net
__TCP 클라이언트
____TCP 클라이언트를 약간 변형한 버전
__TCP 서버
____TCP 서버를 약간 변형한 버전
__UDP 클라이언트
__UDP 서버 구현
__동시성을 지원하는 TCP 서버
____동시성을 지원하는 TCP 서버의 또 다른 버전
__TCP/IP 서버를 구동하는 도커 이미지 생성
__원격 프로시저 호출(RPC)
____RPC 클라이언트
____RPC 서버
__로우레벨 네트워크 프로그래밍
____원본 상태의 ICMP 패킷 수집
__참고 자료
__연습문제
__요약


14장. 머신러닝

__간단한 통계적 특성 계산
__회귀
____선형 회귀
____선형 회귀 구현
____선 그래프 그리기
__분류
__군집
__이상 감지
__신경망
__아웃라이어 분석
__텐서플로
__카프카
__참고 자료
__연습문제
__요약
__마무리하며

찾아보기

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 실전에서 Go 언어를 활용하는 방법
■ Go의 내부 작동 과정과 언어 설계 당시 고려 사항, Go 코드 최적화 방법
■ Go 데이터 타입, 복합 타입, 데이터 구조에 대한 완벽 가이드
■ Go 언어를 제대로 사용하기 위한 패키지, 리플렉션, 인터페이스
■ 서버 사이드, 클라이언트 사이드 애플리케이션을 비롯한 네트워킹 기능을 사용하는 고성능 시스템 구현 방법
■ 웹어셈블리, JSON, gRPC를 이용해 다른 시스템과 상호작용하는 방법
■ 안정적이고 동시성을 지원하는 고성능 코드
■ ... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서/번역서

안내
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품