목차
What is Go?
Go는 2009년 구글이 개발한[2] 프로그래밍 언어이다. 가비지 컬렉션 기능이 있고, 병행성(concurrent)을 잘 지원하는 컴파일 언어다 ...
Go의 문법은 대체로 C와 비슷하다: 코드 블록들은 중괄호로 둘러싸고 for, switch, if를 포함한 일반적인 제어구조를 가지고 있다. C와 다르게, 한 라인 끝의 세미콜론은 필수가 아닌 옵션이다. 변수 선언은 다르게 작성되고 대개 옵션이다. 형변환은 명시적으로 해야 한다. 병행성 프로그래밍을 다루기 위해 go와 select 키워드가 사용된다. 새로운 타입은 map, 유니코드 문자열, 배열 slice, 그리고 내부 쓰레드 통신을 위한 채널(channel)이 있다. - 위키피디아
Why Go?
Go언어를 학습하게 된 계기는 아래와 같다.
- IaC Testing Framework인 Terratest가 Go 언어 기반으로 되어있음.
- 현재 사용가능한 언어가 bash, python으로 한정되어 있다. 물론 python으로 대부분의 작업 (웹개발, 각종 API 연계, 작업용 스크립트 등)이 가능하지만, python은 GIL(Global Interpreter lock, 언제나 하나의 쓰레드만을 사용하는 것)으로 인해 멀티쓰레딩의 사용이 굉장히 제한이 된다. 또한 비동기 프로그래밍이 지원되지만 주로 사용하는 AWS SDK에서는 사용이 어려웠다. Go언어는 이를 보완할 수 있는 좋은 언어인 것으로 보인다.
- 구글에서 적극적으로 밀고 있는 언어이고, Docker와 K8S가 Go로 개발되었다는 사실이 인상깊었다.
- Go언어를 배우면서 기존에 알고 있던 개념 (익명함수, First Citizen, 클로져 등)을 다시 복습할 수 있다.
How Can Learn?
아래 두 사이트를 이용하여 개념을 정리하고자 한다.
1) A Tour of Go : https://go-tour-kr.appspot.com/
A Tour of Go
연습: 슬라이스 Pic이라는 함수를 구현합니다. 이 함수는 dy개 만큼의 길이를 가지는 슬라이스를 리턴해야 하는데, 각각의 요소들은 또한 dx 개의 8비트 부호없는 8비트 정수 타입을 가지는 슬라이스입니다. 프로그램을 실행하면 이 정수값들을 흑백 (사실은 파란색)을 나타내는 값으로 해석하여 그림을 보여줄 것입니다. 그림은 여러분이 원하는 것으로 선택할 수 있습니다. (이용할 수 있는) 흥미로운 함수로는 x^y, (x+y)/2, x*y 등이 있습니다. (여
go-tour-kr.appspot.com
2) 한눈에 끝내는 고랭 기초 : https://edu.goorm.io/learn/lecture/2010/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-%EA%B3%A0%EB%9E%AD-%EA%B8%B0%EC%B4%88
한 눈에 끝내는 고랭 기초 - 구름EDU
이미 모두 갖추어진 실습환경에서 직접 코드를 작성하고 실행하며 Go lang의 기본을 다질 수 있는 프로그래밍 강좌입니다.
edu.goorm.io
한 눈에 끝내는 고랭 기초 과정은 별도로 Go언어 개발을 위한 환경 셋팅 없이 실습이 가능하고, 코딩 테스트 환경과 비슷하게 생겨서 금방 익숙해질 수 있다는 장점이 있다.
'Programming > Golang' 카테고리의 다른 글
[번역] Strings, bytes, runes and characters in Go (0) | 2021.07.02 |
---|---|
Golang 기초 - III (0) | 2021.06.30 |
Go 언어 배우기 (II) - 변수부터 컬렉션까지 (With Python) (0) | 2020.05.12 |