버전 관리되는 SQL 파일이나 Go 함수로 데이터베이스 스키마 변경을 관리하는 CLI 및 Go 라이브러리입니다.
go-gorm/gorm
Go 구조체를 데이터베이스 테이블에 매핑하고 연관 관계, 훅, 트랜잭션, 마이그레이션을 지원하는 기능이 풍부한 ORM입니다.
- 스타
- 39,978
- 포크
- 4,220
- 열린 이슈
- 554
- 마지막 커밋
- 지난달
어떤 프로젝트인가요?
GORM은 Go용 객체 관계형 매핑 라이브러리입니다. Go 구조체로 모델을 정의하고, 모든 쿼리에 원시 SQL을 직접 작성하지 않아도 생성, 조회, 수정, 삭제 작업을 수행할 수 있으며, 필요할 때는 SQL 빌더와 원시 SQL도 사용할 수 있습니다.
이 라이브러리는 has one, has many, belongs to, many to many, 다형성 연관 관계, 단일 테이블 상속 등 일반적인 관계형 패턴을 지원하며, Preload와 Joins를 통한 즉시 로딩 기능도 제공합니다. 또한 세이브포인트를 지원하는 트랜잭션, 일괄 삽입, 업서트, 행 잠금, 생성·수정·삭제·조회 작업 전후에 실행되는 훅, 자동 스키마 마이그레이션도 제공합니다.
GORM은 플러그인 API로 확장할 수 있습니다. 문서에 소개된 플러그인으로는 여러 데이터베이스와 읽기/쓰기 분할을 지원하는 데이터베이스 리졸버, Prometheus 통합이 있습니다. 문서와 가이드는 gorm.io에서 확인할 수 있습니다.
핵심 기능
- 01has one, has many, belongs to, many to many, 다형성 연관 관계를 지원합니다.
- 02Preload와 Joins를 통한 즉시 로딩을 지원합니다.
- 03중첩 트랜잭션과 세이브포인트를 지원합니다.
- 04일괄 삽입, 업서트, 행 잠금, FindInBatches를 지원합니다.
- 05생성, 저장, 수정, 삭제, 조회 훅을 제공합니다.
- 06자동 마이그레이션과 플러그인 API를 제공합니다.
활용 사례
- 모든 쿼리에 SQL을 직접 작성하지 않고 관계형 데이터베이스를 사용하는 Go 웹 서비스를 구축할 때 활용할 수 있습니다.
- 리졸버 플러그인을 통해 읽기/쓰기 분할이나 여러 데이터베이스 연결을 추가할 수 있습니다.
- 자동 마이그레이션으로 개발 중 스키마 변경을 관리할 수 있습니다.
빠른 시작
- 1
설치 및 사용 방법은 gorm.io의 가이드를 참고하세요
토픽
자주 묻는 질문
- gorm은(는) 무엇인가요?
- Go 구조체를 데이터베이스 테이블에 매핑하고 연관 관계, 훅, 트랜잭션, 마이그레이션을 지원하는 기능이 풍부한 ORM입니다. GORM은 Go용 객체 관계형 매핑 라이브러리입니다. Go 구조체로 모델을 정의하고, 모든 쿼리에 원시 SQL을 직접 작성하지 않아도 생성, 조회, 수정, 삭제 작업을 수행할 수 있으며, 필요할 때는 SQL 빌더와 원시 SQL도 사용할 수 있습니다.
- gorm은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- gorm은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- gorm은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. gorm의 마지막 커밋은 2026년 9월 14일입니다.
- gorm은(는) 어디에 사용할 수 있나요?
- 모든 쿼리에 SQL을 직접 작성하지 않고 관계형 데이터베이스를 사용하는 Go 웹 서비스를 구축할 때 활용할 수 있습니다. 리졸버 플러그인을 통해 읽기/쓰기 분할이나 여러 데이터베이스 연결을 추가할 수 있습니다. 자동 마이그레이션으로 개발 중 스키마 변경을 관리할 수 있습니다.
- gorm는 어떻게 설치하나요?
- 설치 및 사용 방법은 gorm.io의 가이드를 참고하세요
- gorm은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/go-gorm/gorm
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
PostgreSQL, MySQL, SQLite, MongoDB 등 다양한 데이터베이스에 타입 안전한 접근을 제공하는 Node.js용 TypeScript ORM입니다.
JDBC 및 ODBC 드라이버를 통해 100개 이상의 데이터베이스를 지원하는 무료 멀티플랫폼 데스크톱 SQL 클라이언트이자 데이터베이스 도구입니다.
다양한 SQL 및 NoSQL 데이터베이스를 지원하고 Active Record와 Data Mapper 패턴을 모두 사용할 수 있는 Node.js 및 기타 JS 플랫폼용 TypeScript·JavaScript ORM입니다.
PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle, Db2를 지원하는 promise 기반 Node.js 및 TypeScript ORM입니다.
간단하고 안정적이며 효율적인 소프트웨어를 만들기 위한 오픈소스 프로그래밍 언어 Go입니다.