패키지란 Go언어에서 코드를 묶는 가장 큰 단위이다. Go언어에서는 다른 언어의 네임스페이스를 지원하고 있지 않다.
함수로 코드 블록을, 구조체로 데이터를, 패키지로 함수와 구조체와 그 코드를 묶는다. main 패키지는 특별한 패키지로 프로그램 시작점을 포함한 패키지이다. 프로그램 main 패키지는 필수 요소이며 하나와 여러 외부 패키지로 구성된다.
main 패키지는 특별한 패키지로 프로그램 시작점을 포함한 패키지이다. 프로그램 시작점이란 main() 함수를 의미한다. 프로그램이 실행되면 운영체제는 프로그램을 메모리로 올린다. 이것을 로드라고 한다. 그런 다음 프로그램 시작점부터 한 줄씩 코드를 실행한다. 바로 이 프로그램 시작점이 main() 함수이고, 이 함수를 포함한 패키지가 main 패키지이다.
한 프로그램은 main 패키지 외에 다수의 다른 패키지를 포함 할 수 있다. 표준 입출력은 fmt 패키지를, 암호화 기능은 crypto 패키지를 네트워크 기능은 net 패키지로 임포해 사용할 수 있다.
새로 만들기 전에 먼저 표준 패키지에서 기능을 제공하는지 찾아봐야 한다.
패키지 사용하려면 import 예약어로 임포트를 하고 원하는 패키지 경로를 따옴표로 묶어서 써준다. 다른 패키지를 가져오면 해당 패키지에서 외부 노출하는 함수, 구조체 , 변수, 상수등을 사용할 수 있다.
외부 노출 여부는 변수명, 함수명, 구조체명의 첫글자가 대문자인지 소문자인지로 구분한다. 대문자로 시작하면 노출이고, 아니면 캡슐화된다. 패키지명은 가져오는 패키지 경로의 가장 마지막 폴더명이다.