728x90
반응형

계기

  • Go 로 사이드 프로젝트 개발을 하다, 동적 쿼리가 필요한 경우도 많았고 동일한 유틸/함수들을 다양한 프로젝트에서 동일하게 사용해야 하는 경우가 너무나 많았다.
  • 문득 내가 모든 프로젝트들에 사용하는, 내가 만든 함수들을 패키지화 시키고 간편하게 사용하면 어떨까 생각하게 되었다.
    • 그렇게 '동적 쿼리 유틸'과 'DB 연결 및 쿼리' 유틸들을 오픈소스 패키지화 하기로 결정하였다.

버전 릴리즈

  • 우선 깃허브에 퍼블릭 레포를 파고 패키지 소스코드를 푸시 하였다.
  • 패키지를 임포트 해 사용할 것이기 때문에, 메인 함수의 패키지명은 사용할 패키지 명으로 설정해야 한다.
package gqbd

// ... 코드
  • 테스트 코드들로 각 함수및 유틸들이 원하는 리턴값을 가져오는지 검증을 진행하였다.

    • 여담이지만 <>_test.go 파일들을 테스트 코드로 인식한다.
    • t *testing.T 타입을 인자로 넘겨주면 테스트 진행할 함수로 인식된다.
  • 완료된 후 버전을 릴리즈했다. 최초 베타 테스트이므로 v0.1.0 으로 잡았다.

git tag v0.1.0
git push origin v0.1.0
  • 위처럼 레포에 v0.1.0으로 푸시를 했다면, 이제 Go 쪽에 해당 패키지와 버전을 알려주면 배포가 완료된다.
GOPROXY=proxy.golang.org go list -m github.com/<repo_owner>/<repo_name>@<version>
  • 이렇게 하면 GoDoc에서 내가 배포한 레포를 확인할 수 있다.
    • 다만 배포했다고 GoDoc이 빠르게 반영되는건 아니라는 함정.
    • 그리고 레포의 README.md 파일은 GODOC의 메인 설명 페이지로 나온다는 것.

결과

  • 아래는 내가 배포한 두가지 패키지들이다. 지속적으로 유지보수하면서 버전업 시킬 예정이다.
  • GQBD : Go-Query-Builder
  • GDCT : Go-Database-ConnecT
728x90
반응형

+ Recent posts