[nodejs] PostgreSQL과의 데이터베이스 연동을 위한 데이터 타입 매핑 방법

Node.js에서 PostgreSQL 데이터베이스와 연동하여 데이터를 처리해야 하는 경우, 데이터 타입 매핑은 중요한 과제입니다. PostgreSQL은 다양한 데이터 타입을 지원하고 있으며, 이러한 데이터 타입을 Node.js에서 처리하기 위해서는 적절한 매핑이 필요합니다. 이 글에서는 Node.js에서 PostgreSQL 데이터 타입을 어떻게 매핑하는지에 대해 알아보겠습니다.

데이터 타입 매핑

숫자형 데이터 타입

PostgreSQL의 숫자형 데이터 타입은 INTEGER, SMALLINT, BIGINT, NUMERIC, REAL, DOUBLE PRECISION 등이 있습니다. Node.js에서 이러한 숫자형 데이터를 다룰 때는 JavaScript의 Number 타입을 사용할 수 있습니다.

const { Client } = require('pg');

const client = new Client();
client.connect();

const query = 'SELECT * FROM my_table WHERE id = $1';
const values = [123];
client.query(query, values, (err, res) => {
  if (err) {
    console.error(err);
  } else {
    console.log(res.rows);
  }
  client.end();
});

문자열 데이터 타입

PostgreSQL은 VARCHAR, TEXT, CHAR 등의 문자열 데이터 타입을 지원합니다. 이러한 문자열 데이터는 JavaScript의 String으로 처리할 수 있습니다.

const { Client } = require('pg');

const client = new Client();
client.connect();

const query = 'SELECT * FROM my_table WHERE name = $1';
const values = ['John Doe'];
client.query(query, values, (err, res) => {
  if (err) {
    console.error(err);
  } else {
    console.log(res.rows);
  }
  client.end();
});

날짜 및 시간 데이터 타입

PostgreSQL은 DATE, TIME, TIMESTAMP, INTERVAL 등의 날짜 및 시간 데이터 타입을 지원합니다. Node.js에서는 JavaScript의 Date 객체를 사용하여 이러한 데이터를 처리할 수 있습니다.

const { Client } = require('pg');

const client = new Client();
client.connect();

const query = 'SELECT * FROM my_table WHERE created_at > $1';
const values = [new Date('2022-01-01T00:00:00Z')];
client.query(query, values, (err, res) => {
  if (err) {
    console.error(err);
  } else {
    console.log(res.rows);
  }
  client.end();
});

기타 데이터 타입

PostgreSQL은 기타 다양한 데이터 타입을 지원합니다. 예를 들어, BOOLEAN, JSON, UUID 등의 데이터 타입이 있습니다. 이러한 데이터 타입은 Node.js에서도 각각 Boolean, Object, String 등의 JavaScript 데이터 타입으로 매핑하여 활용할 수 있습니다.

결론

Node.js에서 PostgreSQL과 데이터를 연동할 때 데이터 타입 매핑은 중요한 과제입니다. PostgreSQL의 다양한 데이터 타입을 적절히 JavaScript 데이터 타입으로 매핑하여 데이터를 처리하는 것이 핵심입니다.

이러한 데이터 타입 매핑을 통해 Node.js와 PostgreSQL 간의 데이터 통신이 원활하게 이루어질 수 있고, 안정적인 애플리케이션을 개발할 수 있습니다.

참고 문헌:

ENND