#1 Golang 이란?

2019. 12. 11. 15:47 개발 이야기/Golang

 

정말 요즘 제가 굉장히 빠져있는 프로그래밍 언어가 있습니다.

 

 

바로 구글에서 만든 Golang 인데요!

 

 

 

평소에는 파이썬(백엔드)자바(안드로이드)를 메인으로

 

 

사용을 하면서 두 언어의 단점장점을 몸소 겪고 있었는데요

 

 

음.. 물론 프로그래밍 언어라는 게 용도에 맞게,

 

상황에 맞게 사용되는 것이지만

 

 

용도를 떠나 조금 멀~~~~리서 보면 

 

Golang이 이 두 개의 언어의 단점들을 보완할 수 있지 않나! 라는 생각이 듧니다

 

 

Golang으로 안드로이드 앱도 제작이 가능하다고는 하는데 

 

 

아직 정보가 많이 없습니다

 

 

자 그러면 파이썬의 장단점은 뭐가 있을까요?

 

 

첫째, 정말 쉽다.

 

현재 사업을 하고 있는 지인의 말을 빌려보면

 

 

파이썬은 신입을 뽑아 현업에 투입시키는데 3개월이면 충분하다.

 

 

이렇게 얘기를 하더군요.

 

 

둘째, 범용적이다.

요즘 머신러닝, 빅데이터 등 정말 쓰이지 않는 곳을 찾아볼 수가 없습니다.

 

 

 

셋째, 가볍다(?)

 

물론 케바케겠지만, 파이썬은 죽이는 인터프리터

 

어떤 환경에서도 간단하게 실행하고 테스트하고 코딩할 수 있습니다.

 

 

 

이 외에도 엄청나게 많은 장점을 가지고 있는 파이썬입니다.

 

 

 

그렇다면 자바의 장점은?

 

 

첫째, 많이 쓴다.

 

 

둘째, 음..

 

사실 자바의 장점을 잘 모르겠습니다.

 

 

많이 사용해서 취업이 쉽다?

(JAVA를 배우면 솔직히 취업 걱정은 없는 것 같아요)

(물론 개인적인 생각입니다)

 

 

 

그러면 단점을 보겠습니다.

 

 

파이썬의 단점

 

첫째, 멀티쓰레드의 한계(?)

 

파이썬은 GIL(Global Interpreter Lock) 개념 때문에

 

아무리 멀티쓰레드를 돌려도

1 core밖에 사용하지 못합니다.

멀티쓰레드 많이 만들어봐야 모든 잡이 느려지기만 할 뿐

 

그래서 멀티 프로세스를 도입해서 해야 합니다

 

지난번에 설명한

 

비동기 B2C 서버 구축하기 - Gunicorn, Celery, rabbitMQ

 

둘째, 느리다

아무래도 컴파일 언어가 아니다 보니 

컴파일 언어보다 느립니다.

 

micro 서비스는 상관이 없습니다.

 

제발 작은 서비스에서 사용해보고

"아닌데 빠른데"

라고 하지 말아 주세요.

 

크게 두 개 정도의 단점을 찾았는데요

 

자바의 단점은!

어렵다, 복잡하다.

 

확실합니다.

 

 

이런 단점을 보완해줄 수 있는 프로그래밍 언어가 바로

 

Golang이라고 생각합니다.

 

goroutine을 이용한 간단한 멀티스레드 사용

단순한 문법들

 

컴파일 언어이다 보니 속도도 굉장합니다!

 

종속이 배제되다 보니, 이식성도 뛰어납니다!

 

 

 

하지만! Golang의 단점은 

 

C, C++ 보다는 느리고

 

python 보다는 어렵고(생산성이 나오지 않고)

 

뭐 이런 애매하다~~~~

 

라는 단점이 있습니다.

 

 

그리고 아직 한국의 현업에서는 많이 사용 되지를 않고 있어요.

 

(물론 외국에서는 도커, 넷플릿스 등 많이 사용되었습니다)

 

하지만 제가 조금 사용을 해본 결과

 

정말 정말 매력이 넘치는 언어임에는 틀림없습니다.

 

그렇기 때문에 !!!

 

 

앞으로 기본적인 언어 사용법을 포함한 웹서비스 만드는 방법을 

 

포스팅해보겠습니다!

 

감사합니다!