프로그래밍의 세계에서는 시간이 아주 빠르게 흘러간다. 수 년이면 프레임워크 트렌드가 바뀌고, 10년쯤 지나면 당시 인기 기술은 현재 환경에 도태된 낡은 기술로 취급되기 일쑤다. 하지만 백엔드(서버 프로그래밍) 환경에서는 어떨까? 비교적 기술의 생명 주기가 길고, 특성상 신기술 도입에 살짝 신중하기도 하다. 이쯤에서 이런 생각이 들 것이다. ‘파이썬, 자바스크립트로 서버 잘 돌리고 있는데 왜 배워야 하죠?’
소규모 서비스만 다룰 생각이라면 그 둘만으로 충분할지도 모르겠다. 하지만 성능이 중요한 대규모 서비스, 대규모 회사일수록 존재감이 커지는 언어가 Go다. Google, Twitch 등 유수 기업들이 많은 코드를 Go 기반으로 바꾸었다. C++처럼 성능이 좋은 대신 어려울 것 같은가? 조금만 써보면 알겠지만, 전혀 그렇지 않다. IBM과 구글에서 일하는 2003년생 천재 개발자인 탠메이에게 이 강력한 언어를 배워보자.
초반부 설치와 프로그램 실행 파트는 굉장히 빠르게 진행된다. 하지만 그럼에도 Go의 특징적인 부분은 자세히 설명한다. 그 뒤에는 모듈, 패키지 등 자주 사용하게 될 Go 요소들을 배운다. 흥미를 잃지 않도록 유명한 알고리즘을 구현하거나, 영화 검색 기능을 만드는 등 재미있는 프로그램을 만들어 본다. 후반부에는 Go의 가장 큰 특징인 동시성을 이용하여 기존의 프로그램을 개선하고, C나 Swift 같은 언어와 함께 사용하여 효율적인 프로그래밍을 하는 방법을 알려준다.
Contents
제1장 소개
1.1 왜 Go인가요?
1.1.1 Go의 설계 목표는 무엇인가요?
1.1.2 어디서 Go를 활용할 수 있을까요?
1.1.3 Go 컴파일러와 런타임
1.1.4 동시성 제2장 빠르게 시작하기
2.1 Go 설치하기
2.1.1 시스템 패키지 매니저를 이용하여 설치하기
2.1.2 미리 컴파일된 바이너리 이용하기
2.1.3 소스코드로 Go 빌드하기
2.2 Go 기본 개념
2.2.1 일반적인 프로젝트 구조
2.2.2 Go의 시작 “Hello, World!”
2.2.3 변수
2.2.4 if 문 그리고 switch 문
2.2.5 반복문
2.2.6 함수
2.2.7 구조체
2.2.8 인터페이스
2.2.9 오류 제3장 Go 모듈
3.1 빌트인 패키지 사용하기
3.2 서드파티 패키지 사용하기
3.2.1 저 소수인가요? 1
3.3 직접 만든 패키지 빌드하기
3.3.1 저 소수인가요? 2 제4장 빌트인 패키지 사용하기
4.1 일반적인 데이터 구조와 알고리즘
4.2 다익스트라 길 찾기
4.3 콘웨이의 라이프 게임
4.4 작업 증명 1 제5장 동시성
5.1 동시성, 스레드, 그리고 병렬성
5.2 고루틴
5.3 채널
5.3.1 select 문
5.4 작업 증명 2 제6장 상호 호환성
6.1 상호 호환성이 중요한 이유는 무엇일까요?
6.2 C 코드와 상호 호환하기
6.3 Swift와 상호 호환하기 색인
Author
탠메이 박시,바히어 카말,우승헌
구글 머신러닝 개발자이자 IBM 소프트웨어 & AI 개발자다. 2004년생. 링크드인의 기술 관련 영향력 있는 인물 상위 25명 중 한 명으로 선정되었으며, 컨퍼런스, 대학 및 국제 기업에서 전 세계 200,000명 이상의 임원, 학생 및 개발자를 대상으로 강연을 진행했다. [Tanmay Teaches]라고 불리는 그의 유튜브 채널에서 모든 사람들과 그의 연구와 지식을 공유하고 있다.
구글 머신러닝 개발자이자 IBM 소프트웨어 & AI 개발자다. 2004년생. 링크드인의 기술 관련 영향력 있는 인물 상위 25명 중 한 명으로 선정되었으며, 컨퍼런스, 대학 및 국제 기업에서 전 세계 200,000명 이상의 임원, 학생 및 개발자를 대상으로 강연을 진행했다. [Tanmay Teaches]라고 불리는 그의 유튜브 채널에서 모든 사람들과 그의 연구와 지식을 공유하고 있다.