더북(TheBook)

io/ioutil 패키지는 파일 입출력과 관련된 유틸리티성 라이브러리로 다음과 같은 기능을 제공한다.

표 7-2 io/ioutil 패키지의 함수

함수

설명

ioutil.ReadAll()

io.Reader의 데이터를 모두 읽어서 []byte로 반환

ioutil.ReadFile()

파일 내용 전체를 읽어서 []byte로 반환, 파일 이름을 io.Reader 대신 문자열로 받는다는 것만 제외하면 ioutil.ReadAll() 함수와 동일하게 동작

ioutil.WriteFile()

[]byte 데이터를 파일에 기록

ioutil.TempFile()

임시 파일 생성

path 패키지는 유닉스 스타일 경로를 다룰 때 필요한 작업을 쉽게 해준다. path 패키지는 리눅스 또는 OS X의 파일 경로나 URL 또는 FTP 경로처럼 슬래시(/)를 구분자로 사용하는 경로에만 정상적으로 동작한다. 윈도에서는 역슬래시(\)를 구분자로 사용하므로 path 패키지로 파일 경로를 다루면 정상적으로 동작하지 않을 수 있다.

path/filepath 패키지는 path와 유사한 기능을 제공하는데, 현재 운영체제에 맞게 파일 경로를 처리해준다. path/filepath는 파일 경로를 다루는 것 외에도 몇몇 추가 기능을 제공한다. 예를 들면 VolumeName() 함수는 현재 경로의 볼륨 이름을 반환하고, Walk() 함수는 주어진 경로 내부의 모든 파일과 디렉터리를 순회한다.

runtime 패키지에는 Go의 런타임 시스템에 접근하는 다양한 함수와 타입이 있다. runtime 패키지의 몇몇 함수는 실행 환경에 직접적인 영향을 줄 수 있으니 주의해서 사용해야 한다. 알아두면 유용한 상수와 함수를 표 7-3에 정리했다.

표 7-3 runtime 패키지의 유용한 상수와 함수

상수와 함수

설명

runtime.GOOS

운영체제 타입(darwin, freebsd, linux, windows)

runtime.GOARCH

CPU 아키텍처 타입(e.g., 386, amd64, arm 등)

runtime.GOROOT()

환경 변수에 $GOROOT로 등록된 경로, 환경 변수에 $GOROOT가 등록되어 있으면 Go의 빌드 경로를 사용

runtime.Version()

Go 버전

runtime.NumCPU()

CPU 코어 수

runtime.GOMAXPROCS()

현재 프로그램에서 사용할 CPU의 최대 수

encoding 패키지와 그 하위 패키지에서는 텍스트 인코딩 관련 기능을 제공한다. encoding/json, encoding/xml, encoding/csv, encoding/base32, encoding/base64, encoding/binary, encoding/gob 등을 통해 다양한 타입으로 인코딩 처리를 할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.