Go 언어란 Python과 같은 인터프리터 언어(스크립트 언어)가 아닌 컴파일 언어이다.
구글에서 근무하던 Robert Griesemer, Rob Pike, 그리고 Ken Thompson이 개발하다가 C++이 너무 복잡해서 만들어낸 언어라고 한다.
(좌측부터 Robert Griesemer, Rob Pike, Ken Thompson, 한분한분 정말 대단한 개발자이다.)
컴파일 언어이지만 컴파일러가 소스 코드를 해석하는 pass 수를 줄여서 인터프리터 언어처럼 빠르게 동작
언어의 문법이 간결하여 접근하기 쉽고 높은 성능을 낼 수 있다
자료형 체계에서 정적 타입 검사가 이루어지기 때문에 Python 등에 익숙해져 있는 경우 생소할 수 있지만 풍부한 라이브러리를 통해서 다양한 기능을 쉽게 구현 가능
고루틴이라는 비동기 매커니즘을 제공하여 이벤트 처리 및 병렬 프로그래밍 작성 용이
고루틴은 OS에서 관리하는 경량 스레드보다 더 가볍기 때문에 CPU 코어갯수와 무관하게 수백, 수천만 고루틴을 작성해도 성능에 문제가 발생하지 않는다.
(비동기 처리 부분은 Erlang에서 영향을 받았기 때문)
파일 언어인 덕분에, 속도가 느린 스크립트 언어에서 연산 퍼포먼스가 필요한 부분을 Go로 대체해 넣을 수 있다
나 역시 아직 Go 언어 및 컴파일러 언어에 대해 생소하기 때문에 공식 사이트를 비롯한 많은 사이트를 참조했다.
아래 블로그 링크와 같은, 훌륭한 개발자분들이 작성해주신 좋은 글들이 많으므로 참고하면 될 듯 하다.
요약하자면, Go 언어를 사용하고자 하는 경로에 bin
, pkg
, src
디렉토리를 생성한 후, src
디렉토리에 Go 파일을 생성하면 된다.
아주 간단하게 Go 언어를 아래와 같이 묻고 씹고 뜯고 즐겨보았다.
우선 아래와 같이 디렉토리를 생성,
간단한 문구 출력
컴파일 언어답게 한 파일을 작성한 후 아래와 같은 과정을 거쳤다.
go run
명령어를 통해 테스트go build
명령어를 통해 go 파일을 실행파일로 생성위와 같이 test라는 이름의 실행파일이 만들어졌고, 실행을 하면 test.go
파일에 작성해두었던 코드가 실행되는 것을 볼 수 있다.
개발하던 C++이 마음에 안들어서 세명이서 Go 언어를 뚝딱 만들어냈단다..
세 분 다 굉장한 개발자긴 하지만 정말 개발자적? 마인드가 아닐까 하는 생각이 들었다.
본받아야하는건가..? ㅋㅋㅋ
그동안 인터프리터 언어였던 Python으로만 개발을 해오다가 이번에 Go 언어를 통해 컴파일러 언어를 처음 접하게 되었다.
학부시절 C를 배운적 있긴 하지만 너무 옛날이라 기억이 안나는게 흠이다. (ㅎㅎ..)
생각보다 재밌고 배울게 많은 언어인듯 하여 앞으로 기대가 된다
참고
http://golang.site
https://m.blog.naver.com/dsz08082/221970891331
https://judo0179.tistory.com/80
https://medium.com/@whj2013123218/go-run-build-install-fa29cab5bc32