[go] 경로 정규화

Go 언어에서 경로를 다루다보면 경로를 정규화해야 하는 경우가 생깁니다. 정규화란 상대 경로를 절대 경로로 변경하거나, 중복된 경로 구분자를 제거하는 것을 말합니다. Go 언어에서는 path/filepath 패키지를 사용하여 경로를 정규화할 수 있습니다.

상대 경로를 절대 경로로 변환하기

path/filepath 패키지의 Abs 함수를 사용하여 상대 경로를 절대 경로로 변환할 수 있습니다.

예를 들어 다음과 같이 사용할 수 있습니다:

package main

import (
	"fmt"
	"path/filepath"
)

func main() {
	relPath := "dir/subdir/file.txt"
	absPath, _ := filepath.Abs(relPath)
	fmt.Println(absPath)
}

이 코드는 dir/subdir/file.txt라는 상대 경로를 절대 경로로 변환하여 출력합니다.

정규화된 경로 가져오기

때로는 중복된 경로 구분자를 제거하여 경로를 깔끔하게 만들어야 할 때가 있습니다. path/filepath 패키지의 Clean 함수를 사용하여 이를 수행할 수 있습니다.

예를 들어 아래와 같이 사용할 수 있습니다:

package main

import (
	"fmt"
	"path/filepath"
)

func main() {
	uncleanPath := "path/to/some//dir"
	cleanPath := filepath.Clean(uncleanPath)
	fmt.Println(cleanPath)
}

이 코드는 중복된 경로 구분자를 제거하고 정규화된 경로를 출력합니다.

이와 같이 path/filepath 패키지를 사용하여 Go 언어에서 경로를 정규화할 수 있습니다.

참고문서: https://pkg.go.dev/std/path/filepath