연결하기
연결하기 (Connect)
DuckDB를 사용하려면 먼저 데이터베이스에 대한 연결을 만들어야 해요. 정확한 문법은 [클라이언트 API]({% link docs/current/clients/overview.md %})마다 조금씩 다르지만, 보통 지속성(persistence)을 설정하는 인자를 전달하는 방식이에요. 함께 알아볼까요?
출처: 문서
본문
데이터베이스 연결 또는 생성 (Connect or Create a Database)
DuckDB를 사용하려면 먼저 데이터베이스에 대한 연결을 만들어야 해요. 정확한 문법은 [클라이언트 API]({% link docs/current/clients/overview.md %})마다 다르지만, 보통 지속성을 설정하는 인자를 전달하는 방식이에요.
DuckDB v1.5.2부터는 [Quack 프로토콜]({% link docs/current/quack/overview.md %})을 사용해 클라이언트-서버 연결을 설정할 수 있어요. Quack은 현재 실험 단계이며 2026년 가을까지 성숙해질 것으로 예상된답니다.
지속성 (Persistence)
DuckDB는 데이터를 디스크에 저장하는 영속 모드와, 전체 데이터셋을 메인 메모리에 저장하는 인메모리 모드, 두 가지로 동작할 수 있어요.
팁 영속 데이터베이스든 인메모리 데이터베이스든, 메모리보다 큰 워크로드(즉, out-of-core 처리)를 지원하기 위해 디스크로의 스필링(spilling)을 사용해요.
영속 데이터베이스 (Persistent Database)
영속 데이터베이스를 생성하거나 열려면 연결을 만들 때 데이터베이스 파일의 경로(예: my_database.duckdb)를 설정하세요.
이 경로는 기존 데이터베이스를 가리킬 수도 있고 아직 존재하지 않는 파일을 가리킬 수도 있는데, DuckDB는 필요에 따라 그 위치에 데이터베이스를 열거나 생성해요.
파일 확장자는 아무거나 가능하지만, .db나 .duckdb가 흔한 선택이고 가끔 .ddb도 사용돼요.
v0.10부터 DuckDB의 저장 형식은 [하위 호환]({% link docs/current/internals/storage.md %}#backward-compatibility)이 가능해요. 즉, DuckDB는 이전 버전의 DuckDB가 만든 데이터베이스 파일을 읽을 수 있어요. 예를 들어 DuckDB v0.10은 이전 버전인 v0.9가 만든 파일을 읽고 다룰 수 있어요. DuckDB 저장 형식에 대한 자세한 내용은 [storage 페이지]({% link docs/current/internals/storage.md %})를 참고하세요.
인메모리 데이터베이스 (In-Memory Database)
DuckDB는 인메모리 모드로도 동작할 수 있어요. 대부분의 클라이언트에서 데이터베이스 파일 인자로 특별한 값 :memory:를 전달하거나, 데이터베이스 파일 인자를 생략하면 이 모드가 활성화돼요. 인메모리 모드에서는 어떤 데이터도 디스크에 저장되지 않기 때문에, 프로세스가 끝나면 모든 데이터가 사라져요.