[nodejs] 데이터 마이그레이션과 데이터 스토리지

오늘은 Node.js를 사용하여 데이터 마이그레이션과 데이터 스토리지에 관해 알아보겠습니다.

데이터 마이그레이션

데이터 마이그레이션이란, 기존 데이터를 새로운 데이터베이스나 새로운 형식으로 이전하는 프로세스를 말합니다. Node.js는 데이터베이스 간 마이그레이션을 쉽게 처리할 수 있는 도구를 제공합니다.

예를 들어, Sequelize ORM을 사용하여 기존 MySQL 데이터베이스에서 데이터를 가져와 PostgreSQL 데이터베이스로 이관하는 마이그레이션을 수행할 수 있습니다.

아래는 Sequelize를 사용한 데이터베이스 간 마이그레이션의 간단한 예제입니다.

const { Sequelize, DataTypes } = require('sequelize');

const sourceDB = new Sequelize('mysql://localhost:3306/source_db', {
  define: {
    timestamps: false,
  },
});

const targetDB = new Sequelize('postgresql://localhost:5432/target_db', {
  define: {
    timestamps: false,
  },
});

const User = sourceDB.define('user', {
  username: {
    type: DataTypes.STRING,
    allowNull: false,
  },
});

(async () => {
  await sourceDB.sync();
  await targetDB.sync();

  const users = await User.findAll();
  for (const user of users) {
    await targetDB.models.User.create({ username: user.username });
  }

  console.log('Data migration complete!');
  process.exit(0);
})();

데이터 스토리지

Node.js는 데이터를 저장하고 관리하기 위한 다양한 방법을 제공합니다. 가장 간단한 방법은 파일 시스템을 사용하는 것이지만, AWS S3나 Google Cloud Storage와 같은 외부 스토리지 서비스를 이용할 수도 있습니다.

아래는 AWS SDK를 사용하여 Node.js에서 AWS S3에 데이터를 업로드하는 간단한 예제입니다.

const AWS = require('aws-sdk');
const fs = require('fs');

const s3 = new AWS.S3({
  accessKeyId: 'your_access_key',
  secretAccessKey: 'your_secret_key',
});

const uploadFile = (fileName) => {
  const fileContent = fs.readFileSync(fileName);

  const params = {
    Bucket: 'my-bucket',
    Key: 'example.jpg',
    Body: fileContent,
  };

  s3.upload(params, (err, data) => {
    if (err) {
      throw err;
    }
    console.log(`File uploaded successfully. ${data.Location}`);
  });
};

uploadFile('example.jpg');

Node.js를 이용하여 데이터 마이그레이션 및 데이터 스토리지를 다루는 방법에 대해 간략히 살펴보았습니다. Node.js를 활용하여 데이터를 효과적으로 이전하고 저장하는 다양한 방법을 찾아보시기 바랍니다.