[typescript] await for...of 문을 사용하여 데이터베이스 작업을 처리하는 방법

TypeScript에서는 for...of 루프를 사용하여 데이터베이스에서 결과를 반복하여 처리하는 방법을 제공합니다. 이는 주로 async/await와 함께 사용되어 비동기적으로 데이터베이스 작업을 처리하는 데 유용합니다.

데이터베이스 접속 설정

먼저, 데이터베이스에 연결하고 쿼리를 실행하는 함수를 준비합니다. 아래는 PostgreSQL 데이터베이스를 사용하는 예시입니다.

import pg from 'pg';

const pool = new pg.Pool({
  user: 'your_username',
  host: 'your_host',
  database: 'your_database',
  password: 'your_password',
  port: 'your_port',
});

export async function queryDatabase(query: string, params: any[] = []) {
  const client = await pool.connect();
  try {
    const result = await client.query(query, params);
    return result.rows;
  } finally {
    client.release();
  }
}

await for…of 문을 사용한 데이터 처리

이제 데이터베이스에서 받은 결과를 for...of 루프를 사용하여 처리할 수 있습니다.

async function processDataFromDatabase() {
  const query = 'SELECT * FROM your_table';
  const data = await queryDatabase(query);

  for await (const row of data) {
    // 각 row에 대한 처리
    console.log(row);
  }
}

위 예시에서 for await...of 루프는 비동기적으로 데이터를 반복하여 처리합니다.

이제 TypeScript에서 await for...of 문을 사용하여 데이터베이스 작업을 처리하는 방법을 이해했습니다. 이를 응용하여 실제 프로젝트에서 활용해보시기 바랍니다.