회사에서 내가 개발해 쓰는 스크립트 중에 문자열을 분해해서 인덱스를 구성하는 프로그램이 있다. 대략 1억 2천만번의 반복을 해야 하고, 매 반복마다 수십 개의 if문과 문자열 분해, 때로는 다시 수십 번의 반복을 돌려야 하는 단순 무식한 스크립트이다. 한번 실행하는데 4시간 정도의 시간이 소요 되기 때문에 php-cli로 실행하는데, 굳이 php를 쓰는 이유는 웹사이트와 공통 라이브러리를 쓰기 위해서 뿐이었다.
그런데 이번에 수정을 하다가 결과를 테스트 하는데 4시간이나 걸리는 것이 짜증이 나서, 혹시나 하는 마음에 컨버전을 해 봤다. go 언어로 해당 부분을 다시 짜 돌려 본 것이다. python을 안 쓰고 go를 쓴 이유는 어차피 나는 python이나 go나 초보이고, go가 더 실행이 빠르다는 편견이 있어서 이다. 속도 개선이 얼마나 되는지가 목적이었으므로.
놀라운 것은 같은 일을 하는 go 스크립트를 실행했을 때 90초 밖에 안 걸렸다는 점이다. 4시간 vs 90초. 160배나 빠르다.
실무에 go를 활용 해야겠다는 생각을 하게 된 일이었다.