GO Lang에 관하여..

Corner·2022년 5월 14일
0

Go

목록 보기
1/9
post-thumbnail

Go

"Go"언어는 연봉 높은 프로그래밍 언어 TOP 5중 하나인 언어입니다.

(Highhest Slaries Worldwide)
(스택오버플로우 개발자 설문조사 2019년 결과)

또한, hired.com 채용 웹사이트에 따르면 "Go"언어는 현재 전세계에서 가장 수요가 높은 프로그래밍 언어 중 하나입니다.

물론 국내 시장은 Java가..

즉, 많은 회사들이 Go 언어를 사용하는 개발자들을 채용하려고 있습니다.

미국 기준 Go 개발자들의 연봉은 대략 8만불(약 9만400백만원??) 정도이고,

그에 반하여 JS 개발자들의 연봉은 대략 5.6만불(약 ₩6500만원) 정도라고 합니다.

그만큼 GO 개발자가 핫(?) 하다고할 수 있습니다.

저는 현 직장에서 GO 언어를 사용하고 있고, 앞으로의 백엔드 언어로 GO 언어를 깊게 들여다보고 싶은 욕심도 생겼습니다.

이전에는 Java Spring, Node Express, Python Django, PHP 언어를 이용하여 많은 백엔드 웹개발을 진행해봤지만

사실 모두 무거운 프로젝트를 진행하는 것은 아니었기 때문에 "왜 이 언어를 써야만 하는걸까, 이 언어여야만 하는가?"에 대한 의문은 풀리지 않았습니다.

각 언어들이 주는 매력과 효과들은 분명히 느꼈습니다.

상황에 맞게 적절한 언어를 선택해야함은 분명하지만 이 언어에 대해 얼마나 알고 있는가?에 대한 질문도 스스로에게 지속적으로 해봐야합니다.

그리고 나는 어떤 언어를, 왜 배우고 싶은가에 대한 마음으로 다가가야한다고 생각합니다.

그래서 왜 GO 언어가 어썸한지에 대해 포스팅하려합니다.

왜 사람들이 GO언어에 열광을 할까요? 왜 관심을 가지죠?

첫 번째로는 GO 언어는 정말 매우 똑똑한 사람들이 만들었다고 합니다.

GO 언어를 만든 개발자들은 꽤나 영향력이 큰 사람들인데

Robert Griesemer, Ken Thompson, Rob Pike 개발자입니다. Unix, C언어, B언어, UTF-8, Java VM과 같은 프로젝트들을 진행한 사람들입니다.

개발자들 입장에서는 엄청나죠.. 매우 똑똑하고 천재들이 만든 언어라고 할 수 있습니다.

두 번째로는 GO언어는 빠르고 아름답습니다.

종종 개발 스피드와 기계 스피드는 타협이 필요했습니다. 예를 들면 C++는 개발 스피드가 느리지만 실행속도가 빠릅니다.

파이썬은 개발속도가 빠르지만 실행속도는 느립니다. (무엇을 개발하냐에 따라 관점의 차이가 있겠지만요••)

그러나 GO 언어는 개발속도와 실행속도 둘 다 빠릅니다.

일단 GO 언어는 자바스크립트 마냥 배우기가 쉽고,(타입 스크립트) 또한 이건 컴파일 언어라서 코딩이 끝나면 0.1로 변환시킵니다.

이는 기계와 가까워서 실행속도가 빠릅니다. 마치 C++를 사용하는 기분이겠죠.

GO 언어는 파이썬과 JS보다 빠르고, 심지어 어떤 경우엔 Java 보다 빠르거나 같을 정도의 성능을 낼 수 있습니다.

세 번째는 GO 언어가 배우기 쉽습니다.

실제로 짜여진 코드를 보면 코딩을 처음하는 사람이 아니라면 어느정도는 알아볼 수 있습니다. 문법은 익혀야겠지요.

GO 언어는 정말 작습니다. GO 언어의 specification을 보면 알 수 있습니다.

(참고로 Java 언어는 specification이 엄청납니다.)

그렇다고 Java가 나쁘다는건 아닙니다. GO가 너무 적다는 것이 어필되는 부분입니다.

그렇기에 배울 것이 많이 없습니다. 기본적으로 백엔드의 경력이 있다면 말이죠. 문법과 Go 사용법만 익히면 되니까요.

네 번째는 GO 언어는 조촐합니다.

코드를 열어보면 정말 단촐합니다. 할 수 있는 방법이 많지가 않습니다.

자바스크립트와 그 외 언어만 해도 map. filter. for each. for in. 등등 많은 것을 지원하는데

GO는 for 뿐입니다. 그래서 매우 쉬울수밖에 없는 구조이면서 조촐합니다. 별로 할게 없어서 어차피 하나의 방법만 써야하거든요.

반대로 말하자면 다른 방법을 구상하느라 필요없이 머리를 굴리며 서치하면서 정보 찾아가며 시간 비용을 낭비하지 않아도 된다는 점이

매우 큰 장점입니다. 반복문을 쓰려면 for밖에 없으니 말이죠.

다섯 번째는 멀티코어 컴퓨터에서도 쓸 수 있습니다.

이젠 컴퓨터도 멀티코어 프로세스도 꽤 커지면서 GO언어는 이러한 컴퓨터들을 위해 만들어졌습니다.

즉슨, 어플리케이션을 만드는 것은 멀티코어 프로세싱을 사용하고 동시에 여러개를 진행해야하는 어플리케이션인 경우

GO언어로 만들면 쉽고, GO언어 자체가 멀티코어를 감안하여 만들어진 언어입니다.

GO 언어 누가 사용하고 있나요?

당연하게도 Google, Youtube가 사용하고 있습니다.

구글의 다운로드 서버는 GO언어로 되어있습니다.

다운로드 서버는 구글 크롬 다운로드, 구글 어스, 안드로이드 SDK 등등..

모두다 GO 언어로 만들어져있습니다.

우버(Uber)는 NodeJS에서 GO언어로 교체했습니다. 유저와 드라이버를 매칭해주는 알고리즘으로 데이터 저장을 위한 것이기 때문입니다.

트위치도 마찬가지입니다. 스트리밍하면 서버로 이동하는데 트위치는 해당 내용을 각기 다른 포맷으로 변환합니다. 예를 들면, 안드로이드, 아이폰, 맥, 윈도우가 호환되게 말이죠.

바로 그 트위치의 변환 프로세싱을 GO 언어와 C++가 하고 있습니다.

그 밖에도 아메리칸 익스프레스, 넷플릭스, 드랍박스, 페이팔 등 많은 기업들이 사용하는 것으로 알려졌습니다.

이렇게 GO 언어의 퍼포먼스는 매우 엄청납니다.

개발자들이 GO 언어를 좋아하는 이유는?

concurrency(동시성)와 parallelism(병렬성) 처리 때문입니다.

profile
Full-stack Engineer. email - corner3499@kakao.com,

0개의 댓글