[javascript] 프로미스를 활용한 데이터 가공 및 변환

프로미스는 자바스크립트에서 비동기 작업을 다루는 데 유용한 패턴이다. 프로미스를 사용하면 비동기 코드의 실행을 제어하고, 데이터를 가공하고 변환하는 작업을 쉽게 할 수 있다.

프로미스란?

프로미스는 비동기 작업의 결과를 나타내는 자바스크립트 객체이다. 비동기 작업은 일반적으로 콜백 함수를 사용하여 처리되지만, 프로미스를 이용하면 코드를 더 간결하고 가독성 있게 작성할 수 있다.

프로미스는 세 가지 상태를 가질 수 있다: pending, fulfilled, rejected. pending 상태는 비동기 작업이 아직 완료되지 않았음을 의미하며, fulfilled 상태는 비동기 작업이 성공적으로 완료되었음을 의미한다. rejected 상태는 비동기 작업이 실패했음을 의미한다.

데이터 가공과 변환

프로미스를 활용하여 데이터를 가공하고 변환할 수 있다. 일반적으로, 비동기 작업의 결과는 다른 비동기 작업의 입력으로 사용되어야 하는 경우가 많다. 프로미스는 이런 상황에서 매우 유용하게 사용될 수 있다.

다음은 프로미스를 사용하여 데이터를 가공하고 변환하는 예제 코드이다.

function fetchData() {
  return new Promise((resolve, reject) => {
    // 비동기 작업을 수행하고 결과를 resolve 또는 reject로 전달한다.
    // 예: 네트워크 요청을 보내고 서버의 응답을 받아온다.
    // 비동기 작업이 성공적으로 완료된 경우 resolve로 결과를 전달한다.
    // 비동기 작업이 실패한 경우 reject로 에러를 전달한다.
  });
}

function processResult(data) {
  // 데이터를 가공하고 변환하는 작업을 수행한다.
  // 예: 데이터를 필터링, 매핑, 정렬한다.
  // 가공된 결과를 반환한다.
}

fetchData()
  .then(processResult)
  .then((result) => {
    // 가공된 결과를 처리한다.
    console.log(result);
  })
  .catch((error) => {
    // 에러를 처리한다.
    console.error(error);
  });

위 코드에서 fetchData 함수는 비동기 작업을 수행하고 그 결과를 프로미스로 반환한다. 반환된 프로미스는 then 메소드를 이용하여 processResult 함수와 연결된다. processResult 함수는 데이터를 가공하고 변환하는 작업을 수행하며, 가공된 결과는 다시 프로미스로 반환된다. 마지막으로, then 메소드를 이용하여 결과를 처리하거나 catch 메소드를 이용하여 에러를 처리할 수 있다.

결론

프로미스를 활용하면 데이터를 가공하고 변환하는 작업을 쉽게 수행할 수 있다. 프로미스는 비동기 작업의 완료를 제어하고, 데이터를 다른 비동기 작업에 전달하는 용도로 많이 사용된다. 프로미스를 적절히 응용하여 코드의 가독성과 유지보수성을 향상시킬 수 있다.

참고 자료