[Go] 바이너리 크기 최적화
Go에서는 기본적으로 go build 명령을 사용해서 최종 결과물을 빌드한다.
딱히 debug 빌드와 release 빌드의 개념이 분리되어있지는 않다.
하지만 최적화의 여지는 더 있다.
그냥 build는 완전히 최적화된 결과물을 내놓는 것도 아니고, 디버그 정보도 포함하기 때문이다.
디버그 정보 제거하기
빌드에 다음 옵션을 주면 디버그 심볼들을 제거하도록 할 수 있다.
이건 속도보다는 바이너리 크기 최적화를 위한 부분이 더 크다.
go build -ldflags "-s -w" 파일

그러면 원래 이랬던 바이너리 크기가

이렇게 줄어든다.

참조
https://stackoverflow.com/questions/29599209/how-to-build-a-release-version-binary-in-go
https://words.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/