Google이 만든 고성능 임베디드 키-값 저장소 라이브러리로, 문자열 키와 값을 정렬된 순서로 저장합니다.
dgraph-io/badger
순수 Go로 작성된 임베디드형 영구 키-값 데이터베이스로, ACID 트랜잭션과 SSD에 최적화된 설계를 제공합니다.
- 스타
- 15,786
- 포크
- 1,334
- 열린 이슈
- 76
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
BadgerDB는 Go만으로 작성된 임베디드형 영구 키-값 저장소입니다. 별도 서버가 아니라 애플리케이션 프로세스 안에서 실행되며, 그래프 데이터베이스 Dgraph의 기반 스토리지 엔진으로 사용됩니다.
Badger는 WiscKey 설계를 바탕으로 별도의 value log를 두는 LSM 트리 구조를 채택했습니다. 값 데이터를 키 인덱스에서 분리해 SSD에서 쓰기 증폭을 줄입니다. 직렬화 가능한 스냅샷 격리를 지원하는 동시 ACID 트랜잭션, 접두사 및 키 범위 스캔을 지원하는 이터레이터, 키별 버전, TTL 기능을 제공합니다. Cgo를 사용하지 않아 표준 Go 툴체인으로 빌드할 수 있습니다.
프로젝트에는 오프라인 백업 및 복원 등의 작업을 위한 CLI도 포함되어 있으며, Go 모듈 github.com/dgraph-io/badger/v4로 제공됩니다.
핵심 기능
- 01Cgo 의존성 없이 순수 Go로 작성된 임베디드형 키-값 저장소입니다.
- 02직렬화 가능한 스냅샷 격리를 지원하는 동시 ACID 트랜잭션을 제공합니다.
- 03value log를 사용해 키와 값을 분리함으로써 SSD에서 쓰기 증폭을 줄입니다.
- 04접두사 및 키 범위 스캔을 지원하는 이터레이터와 키별 여러 버전에 대한 접근을 제공합니다.
- 05키가 자동으로 만료되도록 TTL을 지원합니다.
- 06오프라인 백업 및 복원을 위한 명령줄 도구를 제공합니다.
활용 사례
- Go 서비스나 CLI 도구에 빠른 로컬 영구 저장소를 임베드하는 경우.
- 분산 시스템이나 그래프 데이터베이스의 스토리지 계층으로 사용하는 경우.
- Go 애플리케이션에서 Raft 로그나 메타데이터 저장소를 구축하는 경우.
- 읽기 및 쓰기 처리량이 중요한 SSD에 대규모 데이터셋을 저장하는 경우.
빠른 시작
- 1
Go 프로젝트에 라이브러리를 설치합니다
go get github.com/dgraph-io/badger/v4 - 2
체크아웃한 저장소에서 Badger 명령줄 도구를 설치합니다
cd badger go install .
사용 전 알아둘 점
- Go 1.23 이상이 필요합니다.
토픽
자주 묻는 질문
- badger은(는) 무엇인가요?
- 순수 Go로 작성된 임베디드형 영구 키-값 데이터베이스로, ACID 트랜잭션과 SSD에 최적화된 설계를 제공합니다. BadgerDB는 Go만으로 작성된 임베디드형 영구 키-값 저장소입니다. 별도 서버가 아니라 애플리케이션 프로세스 안에서 실행되며, 그래프 데이터베이스 Dgraph의 기반 스토리지 엔진으로 사용됩니다.
- badger은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- badger은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- badger은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. badger의 마지막 커밋은 2026년 10월 20일입니다.
- badger은(는) 어디에 사용할 수 있나요?
- Go 서비스나 CLI 도구에 빠른 로컬 영구 저장소를 임베드하는 경우. 분산 시스템이나 그래프 데이터베이스의 스토리지 계층으로 사용하는 경우. Go 애플리케이션에서 Raft 로그나 메타데이터 저장소를 구축하는 경우. 읽기 및 쓰기 처리량이 중요한 SSD에 대규모 데이터셋을 저장하는 경우.
- badger는 어떻게 설치하나요?
- Go 프로젝트에 라이브러리를 설치합니다: go get github.com/dgraph-io/badger/v4 체크아웃한 저장소에서 Badger 명령줄 도구를 설치합니다: cd badger go install .
- badger은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dgraph-io/badger
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Raft 합의와 gRPC API를 기반으로 분산 시스템의 핵심 데이터를 저장하는 분산형 고신뢰 키-값 저장소입니다.
Go 구조체를 데이터베이스 테이블에 매핑하고 연관 관계, 훅, 트랜잭션, 마이그레이션을 지원하는 기능이 풍부한 ORM입니다.
버전 관리되는 SQL 파일이나 Go 함수로 데이터베이스 스키마 변경을 관리하는 CLI 및 Go 라이브러리입니다.
SQL 쿼리를 읽고 타입 안전한 Go, Kotlin, Python, TypeScript 코드를 생성하는 SQL 컴파일러입니다.
SQLite 기반의 경량 분산 관계형 데이터베이스로, Raft 합의 알고리즘을 통해 노드 간 데이터를 복제하고 장애에 대응합니다.