[typescript] 타입스크립트와 MongoDB 연동 시 데이터베이스에 자동 재연결 적용하는 방법

이번 포스트에서는 타입스크립트 어플리케이션에서 MongoDB 데이터베이스와의 연동 시, 데이터베이스 연결이 끊어졌을 때 자동적으로 재연결되도록 구현하는 방법에 대해 알아보겠습니다.

MongoDB 드라이버 설치

먼저, MongoDB와 타입스크립트를 연동하기 위해 MongoDB 드라이버를 설치해야 합니다. 일반적으로 Node.js 환경에서는 mongodb 패키지를 사용합니다. 패키지를 설치하려면 프로젝트 폴더에서 다음 명령을 실행합니다:

npm install mongodb

데이터베이스 연결과 재연결 로직 구현

이제 타입스크립트로 데이터베이스 연결 및 자동 재연결을 구현해보겠습니다.

import { MongoClient, Db } from 'mongodb';

const MONGODB_URI = 'your_mongodb_uri';
const MONGODB_DB_NAME = 'your_db_name';

let db: Db;

export async function connectDatabase() {
  const client = new MongoClient(MONGODB_URI, { useUnifiedTopology: true });

  try {
    await client.connect();
    db = client.db(MONGODB_DB_NAME);
    console.log('MongoDB connected');
  } catch (error) {
    console.error('Error connecting to MongoDB:', error);
    // 재연결 로직 추가
    setTimeout(connectDatabase, 5000); // 5초 후에 재시도
  }
}

export function getDatabase(): Db {
  if (!db) {
    throw new Error('Database not connected');
  }
  return db;
}

위 코드에서는 connectDatabase() 함수를 통해 MongoDB에 연결하고, 연결 실패 시 5초 후에 다시 연결을 시도합니다.

어플리케이션 실행 시 데이터베이스 연결

마지막으로, 어플리케이션 실행 시 데이터베이스에 자동으로 연결하는 코드를 추가합니다.

async function startApplication() {
  try {
    await connectDatabase();
    // 어플리케이션 초기화 로직
  } catch (error) {
    console.error('Error starting application:', error);
  }
}

startApplication();

위와 같은 방법으로 타입스크립트로 MongoDB 데이터베이스와의 연동 시 데이터베이스 자동 재연결 로직을 적용할 수 있습니다.

이제 데이터베이스 연결 문제로 어플리케이션이 중단되는 상황을 예방할 수 있게되었습니다.

본 포스트는 타입스크립트와 MongoDB를 사용하는 개발자들에게 도움이 되었으면 합니다.

참고 문헌: MongoDB Node.js Driver Documentation

관련 포스트: