Go 언어는 개발자의 생산성과 코드의 읽기 쉬움을 중요시하는 언어입니다.
그 중에서도 코드 포맷팅은 Go 언어의 핵심 특징 중 하나입니다.
Go 언어에서는 gofmt
와 goimports
두 가지 주요 도구를 통해 코드를 깔끔하고 일관성 있게 유지할 수 있습니다.
gofmt
gofmt
는 Go 언어의 표준 도구로, 모든 Go 개발자가 흔히 사용합니다.
gofmt
는 코드를 읽기 좋고 일관된 스타일로 자동 포맷팅해줍니다.
gofmt
를 사용하면 코드에 일관성을 부여할 수 있으며, 불필요한 논쟁을 피하고 코드 리뷰에 집중할 수 있습니다.
# 현재 디렉토리의 모든 .go 파일을 gofmt로 포맷팅합니다.
gofmt -w .
gofmt
는 기본적으로 import 섹션을 알파벳 순서대로 정렬합니다.
아래는 gofmt
를 적용하기 전의 Go 코드입니다.
package main
import (
"github.com/user/project"
"fmt"
"os"
)
func main() {
fmt.Println("Hello, world.")
}
위 코드를 gofmt
로 포맷팅하면, 다음과 같이 변경됩니다.
package main
import (
"fmt"
"github.com/user/project"
"os"
)
func main() {
fmt.Println("Hello, world.")
}
goimports
goimports
는 gofmt
의 모든 기능을 포함하며, 추가적으로 코드에서 사용하지 않는 import를 자동으로 제거하고 필요한 import를 추가합니다.
개발자는 import 문을 신경 쓰지 않고 코드 작성에 집중할 수 있습니다.
# 현재 디렉토리의 모든 .go 파일을 goimports로 포맷팅합니다.
goimports -w .
아래는 goimports
를 적용하기 전의 Go 코드입니다.
package main
import (
"github.com/user/project"
"fmt"
"os"
)
func main() {
fmt.Println("Hello, world.")
}
위 코드를 goimports
로 포맷팅하면, 다음과 같이 변경됩니다.
package main
import (
"fmt"
"os"
"github.com/user/project"
)
func main() {
fmt.Println("Hello, world.")
}
goimports
는 표준 라이브러리 패키지와 나머지 패키지를 분리하고, 각 그룹 내에서 알파벳 순서대로 정렬합니다.
이렇게 하면 코드의 가독성이 향상됩니다.
gofmt
와 goimports
는 모두 터미널에서 사용할 수 있지만, 대부분의 텍스트 에디터나 IDE는 이 도구들을 자동으로 실행하는 옵션을 제공합니다. 이를 활용하면 저장할 때마다 자동으로 코드를 포맷팅할 수 있습니다.