[nodejs] 데이터베이스 연동을 위한 오류 처리 방법

Node.js 프로젝트에서 데이터베이스와 연동할 때 발생할 수 있는 오류를 처리하는 것은 매우 중요합니다. 이번 포스트에서는 Node.js에서 데이터베이스 연동 시 주로 발생하는 오류들과 해당 오류를 처리하는 방법에 대해 알아보겠습니다.

  1. 데이터베이스 연동 오류
  2. 쿼리 실행 오류
  3. 트랜잭션 오류
  4. 참고 자료

데이터베이스 연동 오류

오류 핸들링

Node.js에서 데이터베이스와 연결할 때 발생하는 오류는 다양합니다. 일반적으로는 연결 정보가 잘못되었을 때 발생하는 연결 오류가 있습니다. 이 경우, try/catch 구문을 사용하여 오류를 처리하고 적절한 메시지를 출력하거나 로깅하는 것이 좋습니다.

예시:

const mysql = require('mysql');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'mydb'
});

connection.connect((err) => {
  if (err) {
    console.error('데이터베이스 연결 오류:', err.message);
    return;
  }
  console.log('데이터베이스에 연결되었습니다.');
});

쿼리 실행 오류

오류 핸들링

쿼리 실행 시 문법 오류, 데이터 유효성 검사 오류 또는 결과가 없는 경우의 오류 등 다양한 상황에서 오류가 발생할 수 있습니다. 이때 try/catch 구문을 사용하여 쿼리 실행 오류를 캐치하고 적절히 처리하는 것이 중요합니다.

예시:

connection.query('SELECT * FROM non_existing_table', (err, results, fields) => {
  if (err) {
    console.error('쿼리 실행 오류:', err.message);
    return;
  }
  console.log('쿼리 결과:', results);
});

트랜잭션 오류

오류 핸들링

트랜잭션을 사용하는 경우, 트랜잭션 관련 오류에 대한 처리도 중요합니다. 트랜잭션 내에서 발생하는 오류를 적절히 처리하여 데이터의 일관성을 유지하는 것이 필요합니다.

예시:

connection.beginTransaction((err) => {
  if (err) {
    console.error('트랜잭션 시작 오류:', err.message);
    return;
  }
  connection.query('INSERT INTO table1 VALUES (1)', (err, results, fields) => {
    if (err) {
      console.error('INSERT 쿼리 실행 오류:', err.message);
      connection.rollback(() => {
        console.error('트랜잭션 롤백');
      });
      return;
    }
    connection.commit((err) => {
      if (err) {
        console.error('트랜잭션 커밋 오류:', err.message);
        connection.rollback(() => {
          console.error('트랜잭션 롤백');
        });
        return;
      }
      console.log('트랜잭션 성공적으로 완료됨');
    });
  });
});

참고 자료