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

Go 마스터하기 고급 기능을 활용한 실전 애플리케이션 만들기

프로그래밍 언어
미할리스 추칼로스 지음 | 남기혁 옮김 | 에이콘출판 | 2018년 10월 16일 출간
5점 만점에 0점 리뷰 0개 리뷰쓰기 |
Klover 8.5(9)
  • 정가 : 40,000원
    판매가 : 36,000 [10%↓ 4,000원 할인]
  • 통합포인트 :
    [기본적립] 2,000원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 5만원 이상 구매 시 2~3% 추가적립
  • 추가혜택 : 카드/포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(13일,목) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내
장바구니 담기 바로구매

책 그리고 꽃 서비스
책 그리고 꽃 | 책과 꽃을 함께 선물하세요 자세히보기

닫기

바로드림 주문 선물하기 보관함 담기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 행사도서 포함 3만원 이상 구매 시, 리드잇 2019 캘린더 선..
    2018.12.04 ~ 2019.01.31
  • #리드잇 페이스북 페이지 팔로우 하시고, 신간소식 빠르게 받아보..
    2017.06.22 ~ 2025.07.31
상품상세정보
ISBN 9791161752082(1161752080)
쪽수 776쪽
크기 186 * 232 * 51 mm /1424g 판형알림

책소개

이 책이 속한 분야

Go 언어의 개론서로 Go 언어의 역사부터 동시성, 시스템 및 네트워크 프로그래밍, 최신 클라우드 개발에 이르기까지 방대한 주제를 깊이 있게 다루고 있다.
이 책을 통해 Go 언어의 설계 철학과 코드 최적화에 도움되는 Go 언어의 내부 원리, 동시성 모델, 시스템 및 네트워킹 코드 작성법, 데이터 타입과 자료구조 활용법 등을 배울 수 있다.

저자소개

저자 : 미할리스 추칼로스

저자 미할리스 추칼로스 (Mihalis Tsoukalos)
기술서 저자이자 유닉스 관리자이자 개발자이자 수학자로서, 언제나 새로운 것을 배우길 좋아한다. 지금까지 Sys Admin, MacTech, Linux User and Developer, Usenix, login:, Linux Format, Linux Journal을 비롯한 여러 저널에 250여 편의 기고문을 썼다.
또한 『Go Systems Programming』(Packt, 2017)을 집필했고, 『몽고디비 인 액션』(제이펍, 2018)의 기술 편집을 맡기도 했다. 주요 연구 분야는 데이터베이스, 운영 체제, 통계학이다.
사진가로도 활동하고 있다.

역자 : 남기혁

역자 남기혁
고려대학교 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임 연구원으로 재직하고 있다. 현재 ㈜프리스티에서 네트워크 제어 및 검증 소프트웨어 개발 업무를 맡고 있다. 에이콘출판사에서 출간한 『GWT 구글 웹 툴킷』(2008), 『해킹 초보를 위한 USB 공격과 방어』(2011) , 『자바 7의 새로운 기능』(2013) , 『iOS 해킹과 보안 가이드』(2014) , 『Neutron 오픈스택 네트워킹』(2015) , 『실전 IoT 네트워크 프로그래밍』(2015), 『애플 워치 WatchKit 프로그래밍』(2015), 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018), 『트러블 슈팅 도커』(2018) 등을 번역했다.

작가의 말

지금 읽고 있는 『Go 마스터하기』란 책은 전적으로 독자들이 보다 뛰어난 Go 언어 개발자가 되는 데 도움을 주기 위한 목적으로 집필한 것이다.
필자는 딱 알맞은 만큼의 이론과 실습 예제를 제공하려고 최선을 다했다. 물론 정말 그런 지는 독자인 여러분만이 판단할 수 있을 것이다. 또한 이 책에 나온 예제들은 모두 곧바로 실행할 수 있는 형태로 작성했다. 따라서 이를 템플릿 삼아 보다 복잡한 애플리케이션을 만드는 데 활용할 수 있다.
각 장의 끝에 나온 연습 문제도 반드시 풀어보기 바란다. 그리고 이 책의 후속 버전에 대해 제안하고 싶은 점이 있다면 언제든지 연락 바란다.

목차

1장. Go 언어와 운영 체제
__이 책의 구성
__Go 언어의 역사
__Go 언어를 배우는 이유
__Go 언어의 장점.
____그렇다면 Go 언어는 완벽한가?.
____godoc 유틸리티.
__Go 코드 컴파일하기
__Go 코드 실행하기
__Go 언어의 두 가지 규칙
____사용하지 않을 Go 패키지는 임포트하지 말 것
____중괄호 작성 스타일을 따를 것
__Go 패키지 다운로드하기
__유닉스 stdin, stdout, stderr
__화면에 출력하기
__표준 출력 사용하기
__사용자로부터 입력 받기
__:=와 =
____표준 입력으로부터 읽기
____커맨드라인 인수 다루기
__에러 출력
__로그 파일 작성하기
____로그 수준
____로그 기능
____로그 서버
____로그 파일로 정보를 보내는 Go 프로그램
____log.Fate( )
____log.Panic( )
__Go 언어에서 에러 처리하기
____error 데이터 타입
____에러 처리하기
__참고 자료
__연습 문제
__요약

2장. Go 언어의 내부 살펴보기
__Go 컴파일러
__가비지 컬렉션
____삼색 알고리즘
____Go 언어 가비지 컬렉터의 구체적인 작동 방식
____언세이프 코드
____unsafe 패키지
____unsafe 패키지에 대한 또 다른 예제
__Go에서 C 코드 호출하기
____같은 파일에 작성한 C 코드 호출하기
____다른 파일에 작성한 C 코드 호출하기
____C 코드
____Go 코드
____Go 코드와 C 코드 합치기
__C 코드에서 Go 함수 호출하기
____Go 패키지
____C 코드
__defer 키워드
__panic 함수와 recover 함수
____panic 함수만 사용하기
__두 가지 유용한 유닉스 유틸리티
____strace
____dtrace
__Go 환경 파악하기
__Go 어셈블러
__노드 트리
__go build에 대해 좀 더 자세히 살펴보기
__Go 코딩에 참고할 만한 조언
__참고 자료
__연습 문제
__요약

3장. Go 언어의 기본 데이터 타입
__Go 언어의 루프
____for 루프
____while 루프
____range 키워드
____Go 언어의 for 루프 예
__Go 언어의 배열
____다차원 배열
____Go 언어에서 제공하는 배열의 단점
____Go 언어의 슬라이스
____슬라이스에 대한 기본 연산
____슬라이스는 자동으로 확장된다
____바이트 슬라이스
____copy( ) 함수
____다차원 슬라이스
____슬라이스에 대한 다른 예제
____sort.Slice()로 슬라이스 정렬하기
__Go 언어의 맵
____nil 맵에 저장하기
____맵은 언제 사용해야 할까?
__Go 언어의 상수
____상수 생성자 iota
__Go 언어의 포인터
__날짜와 시간 다루기
____시간 다루기
____시간 파싱하기
____날짜 다루기
____날짜 파싱하기
____날짜와 시간 포맷 변경하기
__참고 자료
__연습 문제
__요약

4장. 합성 타입 사용법
__합성 타입
__구조체
____구조체에 대한 포인터
____new 키워드 사용법
__튜플
__정규 표현식과 패턴 매칭
____정규 표현식에 관련된 몇 가지 이론
____간단한 예제
____심화 예제
____IPv4 주소 매칭하기
__스트링
____룬이란?
____unicode 패키지
____strings 패키지
__switch문
__파이값 상당히 정확히 계산하기
__Go 언어로 키/값 스토어 만들기
__참고 자료
__연습 문제
__요약

5장. 자료 구조로 Go 코드 개선하기
__그래프와 노드
__알고리즘 복잡도
__Go 언어에서 이진 트리 만들기
____Go 언어로 이진 트리 구현하기
____이진 트리의 장점
__Go 언어에서 해시 테이블 만들기
____Go 언어로 해시 테이블 구현하기
____검색(lookup) 기능 구현하기
____해시 테이블의 장점
__Go 언어에서 연결 리스트 만들기
____Go 언어에서 연결 리스트 구현하기
____연결 리스트의 장점
__Go 언어에서 이중 연결 리스트 만들기
____Go 언어에서 이중 연결 리스트 구현하기
____이중 연결 리스트의 장점
__Go 언어에서 큐 만들기
____Go 언어에서 큐 구현하기
__Go 언어에서 스택 만들기
____Go 언어로 스택 구현하기
__container 패키지
____container/heap 사용법
____container/list 사용법
____container/ring 사용법
__난수 생성하기
____랜덤 스트링 생성하기
__참고 자료
__연습 문제
__요약

6장. Go 패키지에 대해 잘 알려지지 않은 사실
__Go 패키지
__Go 언어의 함수
____익명 함수
____여러 값을 리턴하는 함수
____함수의 리턴값에도 이름도 붙일 수 있다!
____포인터를 매개변수로 받는 함수
____포인터를 리턴하는 함수
____함수를 리턴하는 함수
____함수를 매개변수로 받는 함수
__Go 패키지 직접 만들기
____Go 패키지 컴파일하기
____사설 변수와 함수
____init() 함수
__표준 Go 패키지에 대한 코드 읽기
____net/url 패키지의 소스 코드 살펴보기
____log/syslog 패키지의 소스 코드 살펴보기
__Go 패키지 잘 만드는 방법
__syscall 패키지
____fmt.Println()의 구체적인 실행 과정
__텍스트와 HTML 템플릿
____텍스트 출력 생성하기
____HTML 출력하기
____기본적인 SQLite3 커맨드
__참고 자료
__연습 문제
__요약

7장. 리플렉션과 인터페이스
__타입 메소드
__Go 언어의 인터페이스
__타입 어써션
__인터페이스 직접 정의하기
____Go 인터페이스 사용하기
____인터페이스와 데이터 타입에 대한 switch문 작성법
__리플렉션
____리플렉션에 대한 간단한 예제
____리플렉션에 대한 좀 더 심화된 예제
____리플렉션의 세 가지 단점
__Go 언어에서 OOP하기
__참고 자료
__연습 문제
__요약

8장. 유닉스 시스템에게 작업 지시하기
__유닉스 프로세스
__flag 패키지
__io.Reader와 io.Writer 인터페이스
____버퍼를 이용하는 파일 입출력과 버퍼를 이용하지 않는 파일 입출력
__bufio 패키지
__텍스트 파일 읽기
____텍스트 파일을 한 줄씩 읽기
____텍스트 파일을 한 단어씩 읽기
____텍스트 파일을 한 문자씩 읽기
____/dev/random 읽기
__파일에서 읽고 싶은 만큼 읽기
__바이너리 포맷을 사용하는 이유
__CSV 파일 읽기
__파일 쓰기
__디스크에 데이터를 읽거나 쓰기
__strings 패키지 다시 보기
__bytes 패키지
__파일 접근 권한
__유닉스 시그널 다루기
____두 가지 시그널 처리하기
____모든 종류의 시그널 처리하기
__Go 언어로 유닉스 파이프 다루기
____Go 언어로 cat(1) 유틸리티 구현하기
__디렉토리 트리 탐색하기
__Go 언어에서 eBPF 사용하기
__syscall.PtraceRegs
__시스템 콜 추적하기
__유저 ID와 그룹 ID
__참고 자료
__연습 문제
__요약

9장. Go 언어의 동시성 - 고루틴, 채널, 파이프라인
__프로세스, 쓰레드, 고루틴
____Go 스케줄러
____동시성과 병렬성
__Go 루틴
____Go 루틴 생성 방법
____Go 루틴 여러 개 생성하기
__Go 루틴이 마칠 때까지 기다리기
____Add()와 Done()의 호출 횟수가 일치하지 않으면 어떻게 될까?
__채널
____채널에 데이터 쓰기
____채널에서 데이터 읽기
____함수 매개변수로 지정한 채널
__파이프라인
__참고 자료
__연습 문제
__요약

10장. Go 언어의 동시성 - 고급 주제
__Go 스케줄러 다시 보기
____GOMAXPROCS 환경 변수
__select 키워드
__Go 루틴 만료시키기
____Go 루틴을 만료시키기 위한 첫 번째 기법
____Go 루틴을 만료시키기 위한 두 번째 방법
__Go 채널 다시 보기
____시그널 채널
____버퍼 채널
____닐 채널
____채널에 대한 채널
____Go 루틴의 실행 순서 지정하기
__공유 메모리와 공유 변수
____sync.Mutex
____sync.RWMutex 타입
____Go 루틴으로 메모리 공유하기
__경쟁 조건 발견하기
__context 패키지
____context 패키지를 이용한 좀 더 복잡한 예제
____워커 풀
__참고 자료
__연습 문제
__요약

11장. 코드 테스팅, 최적화, 프로파일링
__11장에서 사용하는 Go 버전
____Go 버전 1.9와 1.10 비교
__베타 또는 RC 버전의 Go 설치하기
__최적화
____Go 코드 최적화하기
__Go 코드 프로파일링
____표준 Go 패키지 net/http/pprof
____간단한 프로파일링 예제
____좀 더 편리한 외부 패키지로 프로파일하기
____Go 프로파일러의 웹 인터페이스
__go tool trace 유틸리티
__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 언어로 웹 서버 만들기
____HTTP 서버 프로파일링하기
____Go 언어로 웹사이트 만들기
__HTTP 트레이싱
____HTTP 핸들러 테스트하기
__Go 언어로 웹 클라이언트 생성하기
____좀 더 기능이 풍부한 웹 클라이언트 만들기
__HTTP 연결 타임아웃하기
____SetDeadline 세부사항
__타임아웃 주기를 서버쪽에 설정하기
__또 다른 타임아웃 기법
__와이어샤크와 티샤크
__참고 자료
__연습 문제
__요약

13장. 네트워크 프로그래밍 - 서버와 클라이언트 만들기
__표준 Go 패키지 net
__TCP 클라이언트
____TCP 클라이언트를 약간 변형한 버전
__TCP 서버
____TCP 서버를 약간 변형한 버전
__UDP 클라이언트
__UDP 서버 구현하기
__동시성을 지원하는 TCP 서버
____동시성을 지원하는 TCP 서버의 또 다른 버전
__원격 프로시저 호출
____RPC 클라이언트
____RPC 서버
__로우레벨 네트워크 프로그래밍
____원본 상태의 ICMP 패킷 수집하기
__그 이상이 알고 싶다면?
__참고 자료
__연습 문제
__요약

__찾아보기

책 속으로

1장, ‘Go 언어와 운영 체제’에서는 Go 언어의 역사와 장점부터 소개한다. 그런 다음, godoc 유틸리티에 대해 설명하며 Go 프로그램을 컴파일하고 실행하는 방법을 소개한다. 이어서 화면에 출력하는 방법과 사용자로부터 입력 받는 방법, 프로그램에서 커맨드라인 인수를 처리하는 방법, 로그 파일을 다루는 방법 등을 소개한다. 마지막으로 Go 언어에서 굉장히 중요한 역할을 하는 에러 핸들링 기법을 소개한다.
2장, ‘Go 언어의 내부 구조’에서는 Go 언어의 가비지 컬렉터의 개념과 작동 원리를 소개한다. 그런 다음 unsafe 패... 더보기

출판사 서평

★ 이 책에서 다루는 내용 ★
■ Go 언어의 설계 철학
■ Go 코드를 최적화하는 데 도움되는 Go 언어의 내부 원리
■ Go 언어에서 제공하는 동시성 모델
■ 시스템 및 네트워킹 코드 작성법
■ 모든 환경에 적용할 수 있는 서버 코드
■ Go 언어의 데이터 타입과 자료 구조의 개념과 활용법

★ 이 책의 대상 독자 ★
이 책은 초급 개발자부터 Go 언어에 대한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머를 대상으로 집필했다. 또한 다른 프로그래밍 언어에 대한 경험이 풍부한 개발자들이 for 루프 작성법과 같은... 더보기

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

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

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

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

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

이 분야의 베스트

더보기+

이 분야의 신간

  • 하지원
    17,820원
  • 이시카와 아키히코
    22,500원
  • 프랑소와 숄레
    29,700원
  • 정종현
    19,800원
  • 길벗R&D
    27,900원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품