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 보다는 어렵고(생산성이 나오지 않고)
뭐 이런 애매하다~~~~
라는 단점이 있습니다.
그리고 아직 한국의 현업에서는 많이 사용 되지를 않고 있어요.
(물론 외국에서는 도커, 넷플릿스 등 많이 사용되었습니다)
하지만 제가 조금 사용을 해본 결과
정말 정말 매력이 넘치는 언어임에는 틀림없습니다.
그렇기 때문에 !!!
앞으로 기본적인 언어 사용법을 포함한 웹서비스 만드는 방법을
포스팅해보겠습니다!
감사합니다!
'개발 이야기 > Golang' 카테고리의 다른 글
#6 Golang gomail을 이용해 SMTP 연동하기 (0) | 2020.01.27 |
---|---|
#5 Golang bcrypt로 비밀번호 해싱 및 검증하기 (0) | 2019.12.30 |
#4 Golang 인증 middleware 구현하기(gin framework) (0) | 2019.12.20 |
#3 Golang JWT 토큰으로 인증 구현하기 (0) | 2019.12.16 |
#2 Golang gin framework 웹서비스 만들기(DB 연동) (0) | 2019.12.11 |