Web/Go Lang

[Go언어] 요즘 뜨는 Go언어... 왜?

JuniorEinstein 2018. 4. 27. 21:05
728x90

안녕하세요! 요즘 Go언어에 빠져 있어서 블로그에 연재를 하는데! 사람들의 관심이 따아아악히... 없는거 같아서...!

Go언어에 대해서 글을 써보려고 합니다!


언어로써 어떤 장점이 있는지, 어디에 활용할 수 있는지, 그리고 왜 앞으로 유망한지 간단하게 알아보겠습니다.


역사

우선은 Go언어의 역사입니다.


Go언어는 구글에서 2009년에 개발하기 시작한 언어로, 현재 1.10버전까지 출시가 되어 있습니다.

최초로 디자인한 사람은 로버트 그리즈머, 홉 파이크, 켄 톰슨이라고 합니다.

Golang이라고 많이 불리고, 검색 할 때 golang이라고 검색하면 더 많은 결과를 찾을 수 있습니다.


공식 홈페이지는 golang.org입니다.


Go언어를 사용하는 사람들을 고퍼(Gopher)라고 부른다고 합니다. (그러면 나도!) 그리고 고퍼들을 위한 행사인 고퍼콘(Gophercon)이 매년 전 세계에서 열린다고 하니! 기회가 되면 참석해 보시는 것도 좋은 경험이 될 것이라고 생각합니다.


<Go언어 공식 웹사이트>


Go언어로 할 수 있는 것

Go언어로는 무엇을 할 수 있나요?


제가 구글에 직접 가서 알아본 결과 구글에서 새롭게 진행하는 프로젝트들에서 이 Go언어를 많이 활용하고 있다고 하는군요!

대표적인 프로젝트로는 FCM(Firebase Could Message), tensorflow 같은 서비스들이 있겠습니다.


그 외에도 Docker라든지, twitch라든지, 다양한 서비스들에서 Go언어를 활용하고 있습니다.


사실 다른 언어들처럼 다양한 분야에 활용할 수 있습니다. 특히, 웹 개발과 관련된 패키지들을 기본적으로 잘 제공하고 있어서 수 많은 웹 프레임워크들을 보유하고 있습니다. (만들어진지 얼마 안된 언어이지만) 대표적으로는, Revel, Beego, Echo 등이 있겠습니다. (저는 Echo를 사용합니다.)


<Go언어 웹 프레임워크인 Echo>


예전에는 사용하는 사람들이 많이 없었지만, 요즘에는 재밌는 문법 체계와! Go언어만의 매력 때문에 점점 사용하는 사람들이 많아지고 있습니다. 특히, 앞으로는 안드로이드나 IOS 개발을 할 수 있도록 적용하고 있다고 합니다.


Go언어의 특징

Go언어의 가장 정말 대표적인 특징이라고 한다면, 컴파일 언어인 것입니다. 이게 왜 특징이냐, 하면! 그것은 바로 컴파일 속도가 매우 빠르기 때문입니다. 오죽하면 컴파일 속도가 너무 빨라서 인터프리터 언어를 사용하는 듯한 느낌을 줍니다. 이러한 특징 때문에 Go언어를 사용하는 사람들이 늘어나고 있습니다. 컴파일 언어인 C 계열 언어와 빠른 개발을 지향하는 인터프리터들의 중간 정도에 위치해서 정말 높은 효율을 보여주고 있다고 할 수 있죠. 특히, 서비스의 속도적인 면에서의 퍼포먼스를 높이기 위해 많이 사용된다고 합니다.


이와 관련되서는 아래의 링크에 글을 참고 하시면 좋을 것 같습니다.


5 Reasons Why We switched from Python To Go


저도 사실 Go언어 개발을 본격적으로 시작할지 말지 고민을 많이 했었는데 위 링크의 글을 보고 Go언어 개발을 본격적으로 시작하게 되었습니다.


여러분들도 빨리 입문할 수 있기를!


위의 글이 영어로 되어 있어서 내용을 간단하게 소개해 드리자면!


저 블로그 글의 작성자는 자신들이 운영하던 웹 서비스에 기존에 적용되어 있던 python을 빼고 Go언어를 도입했습니다. 그 이유를 5가지 정도 설명해 주고 있는데,

  1. 하나의 바이너리로 컴파일 가능하다.
  2. 정적인 타입 시스템이다.
  3. 퍼포먼스가 좋다. (파이썬과는 비교가 안될 정도로 빠르죠)
  4. 웹 프레임워크가 따로 필요 없다. (파이썬은 순수 웹 개발이 힘들기 때문에 장고, 플라스크 등 웹 프레임워크를 사용해야 하는 반면, Go언어는 자체 제공하는 패키지 만으로도 웹 개발을 할 수 있습니다.)
  5. IDE가 잘 되어 있고 디버깅이 쉽다.
정도로 정리하고 있습니다.

Go언어의 장점

Go언어는 어떤 장점이 있을까요? 위에서 언급했던 특징들에도 잠깐 소개 되어 있었겠지만 다시 한번 짚어보도록 하겠습니다.

1. 엄청 빠른 퍼포먼스

엄청 빠릅니다. 물론 거의 모든 언어들의 퍼포먼스는 그 기반이 되는 언어인 C언어에 미치지 못합니다. 하지만 컴파일 언어인 Go언어는 다른 인터프리터 언어들에 비해서 속도가 월등하게 빠릅니다. 그리고 위에서도 언급했던 특징인, 하나의 바이너리로 컴파일 가능하기 때문에 쉽게 관리할 수 있습니다.

2. 배우기 쉽다.

Go언어는 진입 장벽이 매우 낮습니다. 배우기 엄청 쉽다는 뜻이죠. Go언어 특유의 문법 체계는 사람들로 하여금 코드를 하나의 글을 읽는 듯한 느낌을 받게 만듭니다. 그렇게 되니까 누구나 쉽게 이해할 수 있는 코드가 탄생하게 되죠.

Go언어는 다른 언어들에서 불필요한 문법들을 제거 했습니다. (예를 들어서 while문이라든지) 그리고 다른 문법들도 간소화 해서 누구나 쉽게 배워서 사용할 수 있습니다.

저는 특히 Go언어로 멀티 스레드를 구현하는 장면에서 감격을 받았는데요, go라는 문법을 이용해서 1줄로 멀티 쓰레드를 구현할 수 있습니다. 정말 놀라운 일이 아닐 수 없죠!

3. 귀여운 캐릭터가 있다.

굉장히 중요한 부분입니다.

언어를 배우는데 아래의 귀여운 캐릭터가 항상 함께한다? 와 그건 진짜 더 할나위 없이 좋은 일이죠.


여러분도 함께 하시길 바라겠습니다!

Go언어의 단점

이제는 Go언어의 단점입니다. 모든 언어가 그렇듯 장점만 있을 수는 없죠!

1. 작은 한글 커뮤니티

아직 Go언어는 한국에 개발자들이 많지 않습니다. 중국 사람들이 많이 사용한다고 하던데 크흠 중국어 하시는 분들을 자료를 쉽게 찾을 수 있을지도 모릅니다.

Go언어의 자료를 찾기 위해서는 구글에 영어로 검색을 하는 방법이 제일 좋
은 것 같습니다. 빠르고 정확한 자료를 찾을 수 있습니다.

2. 아직 할 수 있는게 많이 없다.

아직은 자바스크립트나 파이썬 만큼 많은 라이브러리를 보유하고 있지 않습니다. 그렇기 때문에 개발을 하는데 직접 구현을 해야 하는 어려움을 겪을 수도 있습니다. (하지만 웬만한건 다 있습니다!)

그래도 앞으로는 안드로이드나 IOS 개발도 가능해 질거라고 하니! 공부해보는 것도 좋겠습니다.

그리고 사실 개발은 여러분의 상상력에 달렸습니다. 누군가는, Go언어를 마스터 해서 많은 것들을 해낼지도 모르겠습니다.

그래도 웹 개발을 할 수 있을 정도는 되니까 괜찮아요!!
(아참 그리고 저번에 Go언어로 OS 개발 한거를 본거 같기도...?)

Go언어의 미래

Go언어는 아무래도 구글이 개발한 만큼 앞으로도 다양한 분야에서 활용될 것입니다. (적어도 전 그렇게 믿고 있습니다!)

아직까지는 한글로 된 자료들도 적고, 연구도 많이 진행되지 않아서 개발에 어려움을 겪을 수 있겠지만 공부해 두면 좋은 언어라고 생각합니다. 그리고 무엇보다도 Docker, twitch, dropdox 등에서 부분적으로 사용하고 있을 만큼 높은 퍼포먼스를 보장합니다.

결론은! 미래가 밝은 언어입니다! 지금 시작하십시오!

결론

오늘은 Go언어에 대해서 알아봤습니다. 앞으로 Go언어와 관련된 다양한 연구들을 진행하고 공유하려고 합니다. 앞으로도 많은 관심 가져 주시고요! 여러분의 개발 미래를 위해서 당장 Go! 하세요!


728x90