- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
인터넷 소스 저장소의 패키지 사용하기
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
import
키워드는 로컬에 있는 패키지뿐만 아니라 인터넷의 소스 저장소에 올라와 있는 패키지도 사용할 수 있습니다.
Go 언어에서 지원하는 소스 저장소와 버전 관리 시스템은 다음과 같습니다.
- GitHub: Git
- BitBucket: Git, Mercurial
- Launchpad: Bazaar
- IBM DevOps Services: Git
먼저 소스 저장소의 패키지를 사용하기 전에 소스 저장소에서 사용하는 버전 관리 시스템을 설치해야 합니다. Windows와 Mac OS X는 다음 주소에서 설치 파일을 받아서 설치합니다.
- Git: http://git-scm.com/downloads
- Mercurial: http://mercurial.selenic.com/downloads
- Subversion: https://subversion.apache.org/packages.html
- Bazaar: http://wiki.bazaar.canonical.com/Download
리눅스에서는 다음 명령으로 각 버전 관리 시스템을 설치합니다.
Git
$ sudo apt-get install git
$ sudo yum install git
Mercurial
$ sudo apt-get install mercurial
$ sudo yum install mercurial
Subversion
$ sudo apt-get install subversion
$ sudo yum install subversion
Bazaar
$ sudo apt-get install bzr
$ sudo yum install bzr
다음과 같이 소스를 작성한 뒤 GOPATH/src/hello/hello.go 파일로 저장합니다. GOPATH를 설정하는 방법은 'Unit 3 기본 디렉터리 설정하기'를 참조하기 바랍니다.
package main
import (
"fmt"
"github.com/golang/example/stringutil"
)
func main() {
fmt.Println(stringutil.Reverse("olleh"))
}
여기서 저장소 주소의 가장 마지막 디렉터리가 패키지 이름이 됩니다. 즉, stringutil.Reverse처럼 사용하면 됩니다.
다음과 같이 전역 패키지로 사용할 수 있습니다.
import (
"fmt"
. "github.com/golang/example/stringutil" // 전역 패키지
)
만약 다른 패키지와 이름이 중복된다면 별칭을 지정해도 됩니다.
import (
"fmt"
strutil "github.com/golang/example/stringutil" // strutil로 별칭 지정
)
이제 콘솔(터미널)에서 GOPATH/src/hello 디렉터리로 이동한 뒤 다음 명령을 실행합니다(Windows에서는 명령 프롬프트 또는 PowerShell을 실행합니다). 저는 GOPATH를 /home/pyrasis/hello_project로 설정하였습니다.
~$ cd $GOPATH/src/hello
~/hello_project/src/hello$ go get
이렇게 go get
명령을 실행하면 hello.go 파일에서 import로 설정한 GitHub 주소에서 패키지를 자동으로 받아옵니다. GOPATH/src 디렉터리를 보면 github.com/golang/example 디렉터리가 만들어져 있고, 패키지의 소스가 들어있습니다.
다음과 같이 go get <저장소 주소>
형식으로 명령을 실행하면 바로 패키지를 받아올 수도 있습니다. 이때는 패키지를 받아오기만 합니다. 따라서 이 패키지를 사용하려면 import로 패키지 주소(패키지 이름)를 설정해야 합니다.
$ go get github.com/golang/example/stringutil
다음은 소스 저장소별 주소 규칙입니다.
소스 저장소 | 주소 규칙 |
---|---|
GitHub | github.com/계정/프로젝트 github.com/계정/프로젝트/디렉터리 github.com/계정/프로젝트/디렉터리/하위디렉터리 |
BitBucket | bitbucket.com/계정/프로젝트 bitbucket.com/계정/프로젝트/디렉터리 bitbucket.com/계정/프로젝트/디렉터리/하위디렉터리 |
Launchpad | launchpad.net/프로젝트 launchpad.net/프로젝트/시리즈 launchpad.net/프로젝트/시리즈/디렉터리 launchpad.net/프로젝트/시리즈/디렉터리/하위디렉터리 launchpad.net/~계정/프로젝트/브랜치 launchpad.net/~계정/프로젝트/브랜치/디렉터리 launchpad.net/~계정/프로젝트/브랜치/디렉터리/하위디렉터리 |
IBM DevOps Services | hub.jazz.net/git/계정/프로젝트 hub.jazz.net/git/계정/프로젝트/디렉터리 |
표 38-1 소스 저장소별 주소 규칙
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.