[Golang] main package, import, and export

im soyoung·2022년 8월 12일

Go 입문

목록 보기
1/1
post-thumbnail

Go package


Go의 package는 코드를 묶는 기본 단위이다. 따라서 모든 코드는 반드시 패키지로 묶어야 한다. Go는 패키지를 통해 작은 단위의 컴포넌트를 작성하고, 이러한 작은 패키지들을 활용해서 프로그램을 작성한다.
package는 main package와 그 외 package로 나뉜다.

main package


프로젝트를 컴파일 하고 싶다면 이 패키지의 이름에 대해서는 선택권이 없다!
자동적으로 컴파일러는 main package와 그 안에 있는 main function을 먼저 찾고 실행시키기 때문이다.

  • Go에서는 어떤 패키지를 사용할 것인지 작성해주어야 한다.
  • Go는 Node.js와 Python과는 달리 특정 function을 찿게 되는데, 이게 바로 function main이다. 그리고 이 부분이 Go 프로그램의 시작점이 되는 부분이다.


그 외 package


목적에 따라 프로젝트 컴파일이 필요가 없을 수도 있다.
공유를 위한 라이브러리를 만든다든지, 오픈소스에 기여한다든지..
이 경우 굳이 main.go가 아니여도 된다.
이러한 것들은 컴파일 되지 않는다. 단지 기능들의 묶음이라든가 다른 사람들이 사용할 수 있도록 하는 데에 목적을 갖는 공유 라이브러리의 역할을 한다.


import and export


import

해당 코드는 "Hello world!"를 출력하는 코드로, fmt package는 표준 라이브러리 패키지이다.
이때, Println이 대문자로 시작하는 것에 주목하자🧐

export

Node.js나 JavaScript에서는 모듈을 export 해야한다.
하지만 Go의 경우, function을 export 하고 싶다면 function을 대문자로 시작하면 된다!

이렇게 함수를 대문자로 시작하면 something.SayHello()와 같이 function을 export해서 사용할 수 있다.
반면, something.sayBye()는 대문자로 시작하지 않기 때문에 private이 되어 사용할 수 없다.

따라서 Println이 대문자로 시작하는 이유도 해당 함수를 export 하기 위한 것임을 알 수 있다.

0개의 댓글