[Go] go mod를 통한 패키지관리
go는 모듈이라는 기본 단위로 프로젝트를 관리한다.
관련 명령은 go mod...를 통해 사용한다.
프로젝트 생성하기
go에서 프로젝트 생성은 다음과 같이 할 수 있다.
프로젝트 폴더를 만들고, 그 경로에서 go mod init을 때려주면 된다.
그럼 go.mod라는 모듈관리파일이 생성될 것이다.
잘 됐으면 엔트리포인트로 main.go를 다음과 같이 작성해주자.
그리고 go run 명령을 사용하면, 잘 작동할 것이다.
동일 프로젝트에서 패키지 링크
go는 하나의 main 패키지에, 여러개의 서브패키지로 프로젝트를 구성하는 것을 권장한다.
동일 프로젝트에서의 서브패키지는 그냥 폴더를 만드는 것으로도 만들 수 있다.
lib라는 패키지를 만들기 위해 lib 디렉터리를 만들고, 거기에 다음과 같이 소스코드를 작성한다.
만들어놓고 main에서 사용할 간단한 덧셈 함수다. 내보낼 식별자는 반드시 대문자로 시작해야함에 유의한다.
그리고 package는 외부에서 갖다쓸때 충돌 방지를 위해 추가되는 이름이다. 폴더명과 같을 필요는 없다.
그럼 main에서는 다음과 같이 사용할 수 있다.
소스코드들이 존재하는 디렉토리를 지정해서 import를 하고, 그 안에서 지정된 패키지명으로 기능들을 끌고오면 된다.
그럼 잘 될 것이다.
간단하지만, 저렇게 import해오는 경로에는 하나의 package만 있어야 한다는 것에 유의하자.
패키지가 2가지 이상이면
못찾는다.
무능한 녀석.
외부 패키지 링크
이번엔 패키지를 다른데다 올리고 그걸 갖다쓰는 방식을 사용해보겠다.
별거없는 간단한 소스를 레포지토리 루트 경로에 뒀다.
규칙은 프로젝트 내에서 할때와 동일하다.
그저 웹 링크에서 파일을 가져오느냐, 그냥 파일시스템에서 가져오느냐가 다를 뿐이다.
그리고 go get 명령을 사용해서 저 파일들이 있는 url 경로를 다운받는다.
그럼 다음과 같이 그냥 웹경로를 그대로 import해서 사용할 수 있다.
그렇다.