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

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

Go 마스터하기 2/e

Go 마스터하기 2/e

(동시성, 네트워크, 머신러닝, 컴파일러 등 고급 기능의 실습과 활용)

미할리스 추칼로스 (지은이), 남기혁 (옮긴이)
에이콘출판
50,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 15개 15,000원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

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

책 정보

· 제목 : Go 마스터하기 2/e (동시성, 네트워크, 머신러닝, 컴파일러 등 고급 기능의 실습과 활용)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9791161755311
· 쪽수 : 1020쪽
· 출판일 : 2021-06-10

책 소개

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 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에서 직접 만나볼 수 있다.
펼치기
남기혁 (옮긴이)    정보 더보기
고려대학교 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 책임 연구원으로 재직하고 있다. 한빛미디어에서 『Make: 센서』(2015), 『메이커 매뉴얼』(2016), 『이펙티브 디버깅』(2017), 『리팩터링 2판』(2020), 『전문가를 위한 C++(개정 5판)』(2023)을, 길벗에서 『핵심 C++ 표준 라이브러리(2판)』(2021), 『모던 C』(2022), 『Go 100가지 실수 패턴과 솔루션』(2023)을, 에이콘출판사에서 『Go 마스터하기』(2018), 『자율주행 자동차 만들기』(2019, 2022), 『스콧 애론슨의 양자 컴퓨팅 강의』(2021) 등을 번역했다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책