go-lang
문득 웹 사이트를 만드는 방법을 생각해보니, 내가 아는 방법 중에는 다음과 같이 4가지 방법으로 나뉘었다 (혹시 제가 모르는 방법이 있으면 알려주세요!).
- 그냥 HTML, CSS, JS을 이용해서 개발하기
- Server Side Scripting Language: PHP, JSP, ASP 처럼 서버 사이드 스크립트 언어를 이용하여 개발하는 방법
- Single Page Application: Angular나 React, Ember, Vue 처럼 웹 어플리케이션을 개발하는 방법
- Static Site Generator: Jekyll, Hexo, Hugo 처럼, 미리 만들어 놓은 설정과 데이터로 프로그램을 통해 HTML 페이지(정적 사이트)를 생성해내는 방법
각 방법마다 장단점이 다르기에 필요에 맞는 것을 골라 개발하면 되는데, 이것 저것 고려를 해 보았을 때에 4번 방법, 정적 사이트를 생성하는 방법이 SEO적인 측면에서도 괜찮고 속도적인 측면에서도 서버에서는 단지 HTML을 제공하기만 하면 되니 훌륭하다. Ruby로 만든 Jekyll이나 Node로 만든 Hexo는 blog 지향적이고, 개인적으로 사용해 본 결과로는 페이지 생성 속도가 아주 그렇게 빠르다고 할 수는 없었다.
마침 gogs 로 개인 git 서버도 돌리며 go가 꽤나 괜찮다는 것을 인지했던 상황이기에, go로 만든 Static Site Generator인, Hugo에도 관심이 가게 되었다. 간단하게 Chromebook 에서 Linux i86 버전을 다운로드 받아 몇 가지 실험을 해 보았다. 세 상 에. 엄청나게 빨랐다. Chromebook이어서 속도가 그렇게 좋은게 아닌데, 정말 엄청나게 빨랐다. 체감상 C++로 테스팅 하던 느낌이랄까, 최근에 계속 스크립트 언어에만 익숙해져 있던 나에게 굉장히 신선한 충격이었다.
음… 그래서, 굉장히 배워야겠다는 느낌이 많이 들었달까. 좀 더 알아보니, C언어를 개발하셨던 거장 Ken Thompson 님께서도 go 언어의 개발에 참여하셨다고 하니(그 외에도 많은 훌륭하신 분들이…), 확실히 알아두어야 될 언어가 된 것 같다.
다음의 링크를 참조하면, C++과 go와의 속도 비교가 나오는데, 거의 큰 차이가 없음을 알 수 있다. 아무리 컴파일 언어라지만, 이렇게 빨라도 되는거야!!??! (아니면… 컴파일 언어이기 때문에 빠를수밖에 없는건가..)