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
반응형
728x90
반응형
  • Neo4j Community Edition
    • 가장 많이 쓰이는 그래프 데이터베이스
    • Cypher라는 쿼리 언어 사용
    • 주로 관계 탐색, 소셜 네트워크 분석, 온톨로지 관리에 사용됨
  • ArangoDB Community Edition
    • 다중 모델 데이터베이스
    • 그래프, 문서, 키-값 데이터 모두 관리 가능.
    • AQL (ArangoDB Query Language) 사용하여 그래프 쿼리 실행
    • 복잡한 관계 데이터 모델링, 온톨로지 관리, 문서형 데이터 통합
  • JanusGraph
    • 유연한 그래프 쿼리 작성 가능.
    • 분산형 아케틱처 지원하여 대규모 데이터에서도 효율적
    • Apache TinkerPop의 Gremlin 쿼리 언어를 사용
    • Cassandra, HBase, ScyllaDB 같은 분산 데이터베이스 및 Elasticsearch, Solr 등의 검색 엔진 지원
    • 대규모 그래프 데이터 처리, 소셜 네트워크, 지식 그래프, 온톨로지 관리
  • OrientDB Community Edition
    • 그래프와 문서형 데이터베이스가 결합된 멀티 데이터베이스
    • SQL과 유사한 쿼리 언어 제공
    • 관계형 데이터베이스와 그래프 데이터베이스의 혼합 사용
    • 데이터 분석 및 온톨로지 관리
  • Apache TinkerPop과 Gremlin Server
    • 그래프 프로세싱을 위한 프레임워크로 다양한 DBMS와 함께 사용
    • Gremlin은 복잡한 그래프 탐색에 유용한 쿼리 언어
    • 다양한 그래프 데이터베이스와 연동 가능
    • 그래프 분석, 온톨로지와 지식 그래프 구축
728x90
반응형

+ Recent posts