기술 탐색 – golang

심심할 때 기술동향을 살펴보곤 하는데 기껏 이렇게 시간을 투자해놓곤 아무런 기록도 안 남기면 아깝다 싶다. 깊게 탐구하지는 못하니까 아무래도 첫인상에 편향되는 면이 많겠지만 기록이 아예 없는 것보다야 낫겠지.

JVM 위에서 돌아가는 함수형 언어에 주로 관심을 둔 탓에 Go는 발표 초기에 잠깐 보고 말았다. 이제 와서 책 한두 권 읽고 구글링 좀 해보니 재미나네. 느낀 바를 간략히 요약해보자면

  • Lisp 같은 모던~한 언어가 아닌 C에서 많은 걸 차용한 언어라니 의외로 나쁘지 않네.
  • Java의 Spring Framework에 대응하는 강력한 프레임워크는 못 찾겠다. Spring Framework는 둘째치고 Python의 Django나 Ruby의 Ruby on Rails와 비교할만한 프레임워크도 못 찾았다. Go를 개발한 Google 내부에서는 어떤 라이브러리와 프레임워크를 사용하는지 궁금하다.
  • 강력하다는 인상을 받은 웹 프레임워크나 ORM는 없다. 가벼운 애플리케이션을 개발하기에는 문제 없어 보인다.
  • 기반 서비스는 강력한 프레임워크를 지원하는 언어를 채택하는 편이 낫지 않을까? Go는 외부와의 통신이 없는 내부 서비스부터 도입하고 노하우를 쌓는 편이 안전하지 않을까?
  • Java를 주력으로 쓰는 개발조직에선 JVM 위에서 작동하는 Scala가 나쁘지 않은데 말이지. 다만 Scala는 언어 사양이 엄청나서 학습 곡선이 문제이고 다른 JVM 기반의 언어 중에 눈에 띄는 건 아직 없다. Kotlin은 설익은 느낌이고 Groovy는 별볼일 없고 Closure는 관심은 가는데 사용자층만 봐선 부정적이다.
  • 유틸리티를 짜기엔 적합해보이는데 복잡한 비지니스 로직을 구현하기에는 어떨지 의문이다.
  • 동시성 구현을 중시하는 언어로써 Node.js와 비교하자면 Go가 구현편의성과 성능 양쪽 모두 앞선다고 본다. 다만 커뮤니티의 지원은 Node.js가 월등히 앞서지 않나 싶다.
  • 이상하게 중국에 Go 관련 커뮤니티가 많다. 이 친구들이 무슨 일을 하는지 사뭇 궁금하다.

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu