가장 빨리 만나는 Go 언어 Unit 39. 패키지 만들기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

패키지 만들기

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

이번에는 패키지를 직접 만들어서 사용해보겠습니다. GOPATH를 설정하지 않았다면 GOPATH부터 설정합니다. GOPATH를 설정하는 방법은 'Unit 3 기본 디렉터리 설정하기'를 참조하기 바랍니다.

먼저 새 패키지를 만든다면 디렉터리 구조와 소스 파일은 다음과 같은 모양이 됩니다.

그림 39-1 패키지 디렉터리 구조와 소스 파일

다음 내용을 GOPATH/src/calc/sum.go 파일로 저장합니다.

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)에서 다음과 같이 작성합니다.

GOPATH/src/hello/hello.go
package main

import (
	"calc" // calc 패키지 가져오기
	"fmt"
)

func main() {
	fmt.Println(calc.Sum(1, 2)) // calc 패키지의 Sum 함수  사용
}

importcalc 패키지를 가져온 뒤 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 공유는 허용합니다.

Published

2015-06-01