가장 빨리 만나는 Go 언어: 문법, 라이브러리, 프로젝트로 배우는 Go 언어!
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
책 구입
전자책 구입
목차
- Unit 1. Go 언어란?
- Unit 2. 설치하기
- Unit 3. 기본 디렉터리 설정하기
- Unit 4. 통합 개발 환경 사용하기
- Unit 5. Hello, world!로 시작하기
- Unit 6. 기본 문법 알아보기
- Unit 7. 변수 사용하기
- Unit 8. 숫자 사용하기
- Unit 9. 문자열 사용하기
- Unit 10. 불 사용하기
- Unit 11. 상수 사용하기
- Unit 12. 열거형 사용하기
- 핵심 정리
- Unit 13. 연산자 알아보기
- Unit 14. 패키지 사용하기
- Unit 15. if 조건문 사용하기
- Unit 16. if 조건문 안에서 함수 사용하기
- Unit 17. for 반복문 사용하기
- Unit 18. goto 사용하기
- Unit 19. switch 분기문 사용하기
- Unit 20. 간단한 예제로 문법 익숙해지기
- 핵심 정리
- Unit 21. 배열 사용하기
- Unit 22. 슬라이스 사용하기
- Unit 23. 맵 사용하기
- 핵심 정리
- Unit 24. 함수 사용하기
- Unit 25. 클로저 사용하기
- Unit 26. 지연 호출 사용하기
- Unit 27. 패닉과 복구 사용하기
- 핵심 정리
- Unit 28. 포인터 사용하기
- Unit 29. 구조체 사용하기
- Unit 30. 구조체에 메서드 연결하기
- Unit 31. 구조체 임베딩 사용하기
- Unit 32. 인터페이스 사용하기
- 핵심 정리
- Unit 33. 고루틴 사용하기
- Unit 34. 채널 사용하기
- Unit 35. 동기화 객체 사용하기
- 핵심 정리
- Unit 36. 리플렉션 사용하기
- Unit 37. 동적으로 함수 생성하기
- Unit 38. 인터넷 소스 저장소의 패키지 사용하기
- Unit 39. 패키지 만들기
- Unit 40. 문서화하기
- 핵심 정리
- Unit 41. 출력 함수 사용하기
- Unit 42. 입력 함수 사용하기
- Unit 43. 문자열 입출력 함수 사용하기
- Unit 44. 파일 입출력 함수 사용하기
- 핵심 정리
- Unit 45. 유니코드와 UTF-8 함수 사용하기
- Unit 46. 문자열 처리하기
- Unit 47. 문자열 변환 함수 사용하기
- Unit 48. 정규표현식 사용하기
- 핵심 정리
- Unit 49. 파일 처리하기
- Unit 50. 입출력 인터페이스 사용하기
- Unit 51. JSON 문서 사용하기
- 핵심 정리
- Unit 52. 압축 사용하기
- Unit 53. 암호화 사용하기
- Unit 54. 정렬 활용하기
- Unit 55. 컨테이너 사용하기
- 핵심 정리
- Unit 56. TCP 프로토콜 사용하기
- Unit 57. RPC 프로토콜 사용하기
- Unit 58. HTTP 서버 사용하기
- 핵심 정리
- Unit 59. 명령줄 옵션 사용하기
- Unit 60. 에러 처리하기
- Unit 61. 단위 테스트 사용하기
- Unit 62. C 언어 연동하기
- Unit 63. C 언어에서 Go 언어 함수 사용하기
- Unit 64. C 언어 배열과 Go 언어 슬라이스 사용하기
- Unit 65. C 언어 컴파일 옵션 사용하기
- 핵심 정리
- Unit 66. 실전 예제: 웹 크롤러 작성하기
- Unit 67. 실전 예제: 채팅 서버 작성하기
- 오탈자
예제 소스
저작권 정보
- 가장 빨리 만나는 Go 언어(이하 ‘책’)의 저작권은 이재홍에게 있습니다.
- 책의 출판권 및 배타적발행권과 전자책의 배타적전송권은 (주)도서출판 길벗에게 있습니다.
- 책의 내용을 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다.
- 링크 및 SNS 공유는 허용합니다.
- 책의 내용을 변경할 수 없습니다.
- 책의 내용을 상업적으로 사용할 수 없습니다.
- 책의 내용을 어떠한 형태로든 재배포할 수 없습니다.
저자 서문
C, C++, Java, Python 등 지금까지 무수히 많은 프로그래밍 언어들이 나왔습니다. Go 언어도 이렇게 많은 언어들 중 하나입니다. 최근에 오픈 소스로 개발된 가상화 컨테이너 Docker가 큰 인기를 끌면서 Docker 개발에 쓰인 Go 언어도 많은 관심을 받게 되었습니다.
특히 클라우드 환경을 위한 오픈 소스 프로젝트는 상당수가 Go 언어로 작성되어 있습니다. 대표적인 프로젝트가 구글의 컨테이너 관리 시스템인 Kubernetes입니다. 클라우드, 웹 서비스, 분산 처리, 서버 애플리케이션 배포 시스템, 데이터베이스 등 다양한 분야에서 Go 언어를 프로젝트 언어로 선택하는 경우가 증가하고 있습니다.
Go 언어는 기본 라이브러리가 매우 탄탄합니다. 기본 라이브러리만으로도 어지간한 요구 사항은 손쉽게 구현할 수 있을 정도입니다. 또한, 기본 라이브러리 이외에도 GitHub에 공개된 수많은 패키지를 키워드 하나로 간단하게 사용할 수 있습니다.
또 다른 특징은 메모리 관리 기능입니다. C, C++처럼 네이티브 바이너리를 만들어내는 컴파일 언어는 메모리를 할당한 후에 반드시 수동으로 해제해야 합니다. 그러다 보니 프로그램의 로직보다는 메모리 관리에 더 많은 신경을 쓰는 일도 비일비재합니다. Go 언어는 소스를 컴파일하여 네이티브 바이너리를 만들지만, 실행 파일 안에 가비지 컬렉터를 내장해서 메모리 관리에 신경 쓰지 않아도 됩니다.
네이티브 바이너리 형식이 주는 이점도 큽니다. Java는 시스템에 항상 가상 머신이 설치되어 있어야 하고, 다른 스크립트 언어들도 각자의 언어 플랫폼이 꼭 필요합니다. 하지만, Go 언어는 실행 파일 하나만 있으면 끝입니다. 그만큼 배포와 관리가 간단해집니다.
멀티 프로세서, 멀티 스레드 환경에 최적화된 설계도 큰 장점입니다. 고루틴을 사용하면 간단한 문법으로 여러 작업을 동시에 처리할 수 있으며 복잡한 동기화 과정을 거치지 않아도 채널을 사용하여 고루틴끼리 간단하게 데이터를 주고받을 수 있습니다.
제가 Go 언어 책을 쓰기로 했을 때 출판사의 담당 편집자는 Go 언어 사용자가 많지 않다며 만류했습니다. 그런데도 저는 Go 언어가 프로그래밍 환경에 큰 변화를 몰고 올 것이라고 확신했기 때문에 많은 사람이 Go 언어를 사용해보았으면 하는 마음에서 책을 쓰게 되었습니다.
새로운 언어를 배우는 일 자체가 부담스러운 분도 많을 것입니다. 하지만, Go 언어는 여러분들의 프로그래밍 능력에 날개를 달아주리라 생각합니다. 아무쪼록 Go 언어를 익히고 사용해보면서 새로운 프로그래밍 언어의 재미를 느껴보기 바랍니다.
2015년 5월 이재홍
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.