neo4j-temp-db 시작하기. 다중 DB 기능을 사용하는 유용한 세션 기반, 자체 정리 임시 Neo4j 데이터베이스
소개
이 라이브러리는 원래 그래프 예제 포털과 함께 사용하려고 만들어졌어요. 처음에는 인메모리 Neo4j 데이터베이스 리브라를 사용했었는데, 벌써 7년이나 됐네요. 하지만 Neo4j 4.x에서는 더 이상 불가능하고, 저희 요구 사항에 맞게 확장하기도 어려워요.
그래서 지금은 @neo4j-labs/temp-db 라이브러리를 사용하면 즉시 임시 데이터베이스를 만들 수 있어요.
다중 데이터베이스 기능이 나오면서 Neo4j 데이터베이스를 임시로 빠르게 생성하고 만료할 수 있게 되었어요. 덕분에 가벼운 콘솔 기반 애플리케이션부터 더 효율적인 단위 테스트까지 가능해졌죠.
이 글에서는 @neo4j-labs/temp-dbs 자바스크립트 라이브러리에 대해 알아볼 거예요.
neo4j-contrib/neo4j-temp-db
시작하기 예
Neo4j 데이터베이스가 실행 중인 상태에서 새 디렉터리를 만들어 주세요. 예를 들어 neo4j-temp-db-demo-app 같은 이름으로 만들고, cd 명령어로 해당 디렉터리로 이동하세요 (cd neo4j-temp-db-demo-app).
npm init을 실행해서 시작해볼까요? 기본값을 모두 선택해도 괜찮아요.
필요한 몇 가지 종속성을 추가하고 저장할게요.
npm install express dotenv neo4j-driver ejs — save
JavaScript ES6를 사용할 수 있도록 바벨 종속성도 설치해 볼게요.
npm install @babel/cli @babel/node @babel/cli @babel/core @babel/preset-env nodemon — save-dev
다음으로는 @neo4j-labs/temp-dbs 라이브러리를 설치해야겠죠?
npm install @neo4j-labs/temp-dbs — save
이제 즐겨 사용하는 텍스트 편집기에서 디렉터리를 열어주세요. 시작하려면 다음 세 가지 파일을 만들어 봅시다.
.babelrc 파일에는 바벨 사전 설정을 다음과 같이 넣어주세요.
{ “presets”: [“@babel/preset-env”] }
.env 파일에는 임시 다중 데이터베이스를 호스팅할 Neo4j 데이터베이스에 대한 연결 정보와 함께 환경 변수를 넣어주세요.
NEO4J_URI=”bolt://localhost:7687"
NEO4J_USER=”neo4j”
NEO4J_PASSWORD=”123456"
index.js 파일은 간단한 Express 앱의 인덱스 파일로 사용할 거예요.
import express from “express”;
import dotenv from “dotenv”;
dotenv.config();
const app = express();
const port = process.env.PORT || 3000;
app.listen({ port }, () => {
console.log(`Ready at https://localhost:${port}`);
});
In index.js, @neo4j-labs/temp-dbs를 인스턴스화하고 .env 파일에서 가져온 환경 변수를 전달해 주세요.
다음 경로를 통과하는 경로를 tempDBName to index.js에 추가하세요.
views/index.ejs 파일을 만들어서 데이터베이스와 상호 작용할 수 있게 해볼게요. 여기에는 두 개의 필드가 필요해요. 하나는 읽기 전용 텍스트 필드인 tempDbName, 다른 하나는 Cypher 쿼리를 입력하는 필드인 cypher입니다.
페이지를 새로 고쳐 보세요! 새로 고칠 때마다 새로운 임시 DB가 생성되는 걸 확인할 수 있을 거예요.
Cypher 쿼리를 실행해 보세요. tempdb는 동일하게 유지된답니다.
정리
clean-expired-dbs.js 파일을 프로젝트 루트에 만들어 주세요. 데이터베이스를 정리할 기간(초)을 지정할 수 있어요.
package.json 파일의 스크립트 섹션에 다음을 추가해서 터미널에서 호출할 수 있게 해봐요:
“clean-expired-dbs”: “babel-node ./clean-expired-dbs.js”,
이제 발견된 데이터베이스 수와 만료 여부를 반환해 줄 거예요.
예제 앱의 전체 코드는 에서 확인해 보세요.
다음 단계: 단위 테스트용 임시 데이터베이스
단위 테스트를 더 쉽게 하려면 @neo4j-labs/temp-dbs 라이브러리를 사용하는 걸 추천해요. JavaScript 영화 예제의 이 포크에 있는 기본 예를 참고하면 도움이 될 거예요.
자원
- neo4j-contrib/neo4j-temp-db
- silverlogic/neo4j-temp-db-demo-app
- How To
- Javascript
- temp
- Unit Testing
에이치시스템즈의 LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.
'Neo4j' 카테고리의 다른 글
| 2020년 Neo4j, 가장 핫했던 9가지 뉴스 & 발표 총정리! (0) | 2026.09.02 |
|---|---|
| Bolt 프로토콜, 최신 업데이트 소식! (0) | 2026.09.02 |
| Cypher Map Projection 완벽 가이드 (0) | 2026.09.01 |
| Neo4j Enterprise Edition을 위한 Production급 PrivateLink 설정 완벽 가이드 (0) | 2026.08.31 |
| 2017 GraphConnect Europe에 꼭 참석해야 할 9가지 이유 (0) | 2026.08.31 |
