Repolode
evrone

evrone/go-clean-template

REST, gRPC, AMQP RPC, NATS RPC 전송 방식을 아우르는 Go 서비스용 Clean Architecture 프로젝트 템플릿입니다.

스타
7,708
포크
665
열린 이슈
3
마지막 커밋
11일 전

어떤 프로젝트인가요?

go-clean-template은 Clean Architecture 원칙을 따르는 Go 마이크로서비스 시작 템플릿입니다. 비즈니스 로직을 데이터베이스, 웹 프레임워크, 메시지 브로커 등의 인프라와 분리해, 핵심 유스케이스가 인터페이스와 표준 라이브러리에만 의존하도록 합니다. 서비스가 커져도 구조를 체계적으로 유지하도록 설계되었습니다.

템플릿에는 세 가지 예제 도메인이 포함되어 있습니다. JWT를 사용한 사용자 인증, 상태 전환을 지원하는 작업 관리, 이력 추적 기능을 갖춘 텍스트 번역입니다. 각 도메인은 네 가지 전송 방식으로 제공됩니다. Fiber 기반 REST API, gRPC, RabbitMQ(AMQP)를 통한 RPC, NATS를 통한 RPC입니다. 의존성 주입에는 New 생성자를 사용하며, 저장소에는 Postgres, RabbitMQ, NATS, Jaeger용 Docker Compose 설정이 포함되어 있습니다.

또한 네 가지 전송 방식 전반에서 컨텍스트를 전파하는 OpenTelemetry 트레이싱과 Prometheus 메트릭, Swagger 문서, 통합 테스트, 데이터베이스 마이그레이션 등 관측 가능성 관련 기능도 다룹니다.

핵심 기능

  • 01New 생성자를 통한 의존성 주입과 Clean Architecture 계층 구조
  • 02swag로 문서를 생성하는 Fiber 기반 REST API
  • 03protobuf로 정의한 gRPC 서비스
  • 04RabbitMQ(AMQP) 및 NATS 요청-응답 방식의 RPC 서버
  • 05OpenTelemetry 트레이싱 및 Prometheus 메트릭
  • 06Postgres, RabbitMQ, NATS, Jaeger가 포함된 Docker Compose 스택

활용 사례

  • 일관된 프로젝트 구조를 갖춘 새 Go 마이크로서비스의 초기 구성
  • Go에서 비즈니스 로직을 전송 방식 및 저장소와 분리하는 방법 학습
  • 동일한 로직을 REST, gRPC, 메시지 큐로 제공해야 하는 서비스 구축

빠른 시작

  1. 1

    Docker Compose로 Postgres, RabbitMQ, NATS를 실행합니다

    make compose-up
  2. 2

    마이그레이션을 실행하고 앱을 시작합니다

    make run

사용 전 알아둘 점

  • 로컬 개발 환경에서 Postgres, RabbitMQ, NATS를 실행하려면 Docker Compose가 필요합니다.

토픽

자주 묻는 질문

go-clean-template은(는) 무엇인가요?
REST, gRPC, AMQP RPC, NATS RPC 전송 방식을 아우르는 Go 서비스용 Clean Architecture 프로젝트 템플릿입니다. go-clean-template은 Clean Architecture 원칙을 따르는 Go 마이크로서비스 시작 템플릿입니다. 비즈니스 로직을 데이터베이스, 웹 프레임워크, 메시지 브로커 등의 인프라와 분리해, 핵심 유스케이스가 인터페이스와 표준 라이브러리에만 의존하도록 합니다. 서비스가 커져도 구조를 체계적으로 유지하도록 설계되었습니다.
go-clean-template은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
go-clean-template은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
go-clean-template은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. go-clean-template의 마지막 커밋은 2026년 10월 11일입니다.
go-clean-template은(는) 어디에 사용할 수 있나요?
일관된 프로젝트 구조를 갖춘 새 Go 마이크로서비스의 초기 구성 Go에서 비즈니스 로직을 전송 방식 및 저장소와 분리하는 방법 학습 동일한 로직을 REST, gRPC, 메시지 큐로 제공해야 하는 서비스 구축
go-clean-template는 어떻게 설치하나요?
Docker Compose로 Postgres, RabbitMQ, NATS를 실행합니다: make compose-up 마이그레이션을 실행하고 앱을 시작합니다: make run
go-clean-template은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/evrone/go-clean-template

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트