- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
패키지 만들기
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
이번에는 패키지를 직접 만들어서 사용해보겠습니다. GOPATH를 설정하지 않았다면 GOPATH부터 설정합니다. GOPATH를 설정하는 방법은 'Unit 3 기본 디렉터리 설정하기'를 참조하기 바랍니다.
먼저 새 패키지를 만든다면 디렉터리 구조와 소스 파일은 다음과 같은 모양이 됩니다.
다음 내용을 GOPATH/src/calc/sum.go 파일로 저장합니다.
package calc
func Sum(a int, b int) int { // 외부에서 사용할 수 있도록 함수의 첫 글자는 영문 대문자로
return a + b
}
여기서 디렉터리의 이름은 패키지 이름과 동일하게 만듭니다. 즉, calc라는 패키지가 있으면 디렉터리는 GOPATH/src/calc가 됩니다. .go 소스 파일의 이름은 패키지 이름과 같지 않아도 되며 각자 상황에 맞게 적절히 짓습니다.
소스 파일의 첫 줄에서 package calc로 설정하여 현재 파일이 calc 패키지에 포함된다는 것을 알려줍니다.
패키지 안에서 함수, 변수, 상수의 이름을 정하는 방법은 두 가지가 있습니다.
- 첫 글자를 영문 소문자로 지정하면 패키지 안에서만 사용할 수 있습니다. 즉 외부에서 사용할 수 없습니다. 예) sum, max, hello
- 첫 글자를 영문 대문자로 지정하면 외부에서 사용할 수 있습니다. 예) Sum, Max, Hello
여기서 지정한 함수 이름은 Sum
, 즉 대문자로 시작했으므로 외부에서 사용할 수 있습니다.
이제 calc 패키지를 사용해보겠습니다. main 패키지의 main 함수가 있는 소스 파일(GOPATH/src/hello/hello.go)에서 다음과 같이 작성합니다.
package main
import (
"calc" // calc 패키지 가져오기
"fmt"
)
func main() {
fmt.Println(calc.Sum(1, 2)) // calc 패키지의 Sum 함수 사용
}
import로 calc 패키지를 가져온 뒤 calc.Sum과 같이 패키지의 함수를 사용하면 됩니다.
만약 패키지 디렉터리가 GOPATH/src/hello/calc라면 다음과 같이 사용합니다.
import "hello/calc"
즉 기준이 되는 디렉터리는 GOPATH/src입니다.
패키지를 컴파일하여 라이브러리로 만들려면 go install
명령을 사용합니다. 다음과 같이 패키지가 들어있는 GOPATH/src/calc 디렉터리에서 go install
명령을 실행합니다.
~$ cd $GOPATH/src/calc
~/hello_project/src/calc$ go install
다음과 같이 go install <패키지 이름>
형식으로 명령을 실행하면 디렉터리의 위치와는 상관 없이 패키지를 컴파일할 수 있습니다.
~$ go install calc
GOPATH/pkg/운영체제_아키텍처 디렉터리에 calc.a 라이브러리 파일이 생성되어 있습니다.
- 리눅스: GOPATH/pkg/linux_amd64
- Mac OS X: GOPATH/pkg/darwin_amd64
- Windows: GOPATH/pkg/windows_amd64/calc.a
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.