[Go] 모듈 배포해보기
간단한 Go 모듈을 구현해서 배포하고 사용해보는 법을 다뤄보도록 하겠다.
우선, Go는 다른 언어들과는 다르게 중앙화된 모듈 서버가 존재하지 않는다.
기본적으로 github를 통해서 모듈을 올리고, 다운받는 과정을 거친다.
모듈 만들어보기
우선 마련해야 할건 go.mod다. 없다면 아래 커맨드로 만들어준다.
충돌을 방지하기 위해서, 그리고 깃헙을 통해 다운받을 수 있게 하기 위해서 그냥 github 경로로 짓는게 보통이다.
github 경로로 이름을 안지어놓으면 다운이 안되더라
go mod init 모듈명
그럼 이런 식으로 만들어질 것이다.
그다음에는 소스코드를 작성한다.
패키지는 main이 아닌 패키지명어야 하고, export될 요소들이 모여있는 파일은 루트 경로에 존재해야 한다.
나름 예쁘게 정리해보려고 src 안에 다 모아서 해보려 했는데, 언어상의 한계인지 안되는 것 같더라

배포하기
이제 저 코드를 말아서 github 등에 올리기만 하면 된다.
근데 여기서 좀 특이한 기능을 쓰는데, git tag라는 것을 활용해서 버전관리를 한다.
커밋 찍고, 태그 만들고, 그 태그로 푸시를 하면 된다.
나도 원래 안써봐서 몰랐던 기능이었는데, 이거 하다가 알게 됐다.
그럼 github에도 이런식으로 올라갈 것이다.
그럼 된 것이다.
갖다쓰기
이제 저걸 갖다써보자.
go get을 통해 소스코드를 다운받는다. 태그를 이용해서 버전을 명시하면 좋다.
go get 경로...

그럼 go.mod에도 이런식으로 종속성이 추가될 것이다.

이제는 쓰기만 하면 된다.
import를 하고, 호출해서 사용할 수 있다.

잘 돈다.
참조
https://go.dev/doc/modules/developing
https://go.dev/doc/modules/publishing