본문 바로가기

코딩 교육

[GO 프로그래밍] golang 언어의 특징

1. GO 언어의 출발

GO 프로그래밍 언어는 2007년 구글에서 개발을 시작하여 2012년 GO 버젼 1.0을 완성하였다. 


2007 년 9 월 25 일, Rob Pike, Robert Griesemer 및 Ken Thompson이 며칠 동안 새로운 프로그래밍 언어에 대해 토론 한 후 Rob은 "Go"라는 이름을 제안했습니다.


2008년에 이안 랜스 테일러 (Ian Lance Taylor)와 Russ Cox가 팀에 합류했습니다. 2009 년 11 월 10 일에 오픈 소스 릴리스로 이끄는 두 개의 컴파일러와 표준 라이브러리를 만들었습니다 .


향후 2 년 동안, 새로운 Go 오픈 소스 커뮤니티의 도움을 받아 크고 작은 변화를 시도하고 Go를 개선하고 2011 년 10 월 5 일에 제안 된 Go 1 계획으로 이어졌습니다 .


GO는 이후 계속 향상된 버젼을 내 놓았으며 2017년 8월 기준  : Build version go1.8.3.


흔히 golang 이라고도 불리우는 Go 프로그래밍 언어는 구글의 V8 Javascript 엔진 개발에 참여했던 Robert Griesemer, Bell Labs에서 유닉스 개발에 참여했던 Rob Pike, 그리고 역시 Bell Labs에서 유닉스 개발했으며 C 언어의 전신인 B 언어를 개발했던 Ken Thompson이 함께 개발하였다.


(참고 : http://golang.site/go/article/1-Go-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4-%EC%86%8C%EA%B0%9C

https://golang.org)



2. GO 언어의 특징

1) C++와 같이 Go는 컴파일러를 통해 컴파일되며, 정적 타입 (Statically Typed)의 언어이다.

   java와 같은 정적 타입 프로그램은 타입 검사가 이루어지기 때문에 프로그램을 실행할 때 조금 더 안전하다. 파이썬는 컴파일 시, 타입 검사가 이루어지지 않아 개발자가 실수할 여지가 조금 더 많다


2) Go는 단순하고 간결한 프로그래밍 언어를 지향한다. 

  개발 부분에 따라 다르지만 Java의 절반에 해당하는 키워드만으로 프로그래밍이 가능하게 하였다. 특히 동시성, 병렬성 문제를 풀 때와 C 바인딩 같은 부분에서는 고가 월등히 코드의 양에서 차이가 난다.


3) 상대적으로 학습과정이 짧다.

   언어 차원에서 간단한 설계와 코드를 어느 정도 권장하고 강제하여 코딩스타일이 일정하게 정해지기 때문에 추가 개발자 투입시 업무 파악이 용이하고 문제가 발생하였을 때 발견하고 처리가 용이하다.


그외로 채널을 활용한 손쉬운 동시성 구현할 수 있고, 가벼운 고루틴을 장점으로 꼽힌다.

또한 간결한 코드를 사용하면서 생산성이 향상됐고, 컴파일 속도와 실행속도가 빨라 테스트가 쉬운 편이다.


단점은 쓸 만한 디버거가 없다는 점이다.

  

(참고 : 그들이 자바·파이썬 대신 고(Go)를 선택한 까닭, 블로터, http://www.bloter.net/archives/245951)