Promise를 사용한 요리 레시피 기능 개발

Cooking

요리 레시피를 개발하는 동안 비동기 작업을 처리해야 할 때가 있습니다. 이러한 경우, Promise를 사용하여 간단하고 효율적인 비동기 코드를 작성할 수 있습니다. 이번 기술 블로그에서는 Promise를 사용하여 요리 레시피 기능을 개발하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치

먼저 Node.js 프로젝트에서 Promise를 사용하기 위해 axios 라이브러리를 설치해야 합니다. 다음 명령어를 실행하여 설치합니다.

npm install axios

API로부터 레시피 데이터 가져오기

요리 레시피를 개발하기 위해 외부 API로부터 레시피 데이터를 가져와야 합니다. 이를 위해 axios를 사용하여 API로 요청을 보내고 데이터를 가져올 수 있습니다.

const axios = require('axios');

function getRecipeData(recipeId) {
  return new Promise((resolve, reject) => {
    axios.get(`https://api.example.com/recipes/${recipeId}`)
      .then(response => {
        resolve(response.data);
      })
      .catch(error => {
        reject(error);
      });
  });
}

위의 예시 코드에서 axios.get() 메서드를 사용하여 API로 GET 요청을 보내고, 응답 데이터를 Promise의 resolve() 메서드로 반환합니다. 요청이 실패한 경우에는 reject() 메서드로 에러를 반환합니다.

레시피 데이터 출력하기

레시피 데이터를 가져온 후, 해당 데이터를 가지고 요리 레시피를 출력하면 됩니다. 이를 위해 Promise 체인을 사용하여 비동기 작업을 순차적으로 처리할 수 있습니다.

getRecipeData('123')
  .then(recipeData => {
    console.log(`레시피 이름: ${recipeData.name}`);
    console.log(`조리 시간: ${recipeData.cookingTime}`);
    console.log(`재료: ${recipeData.ingredients}`);
    console.log(`순서: ${recipeData.instructions}`);
  })
  .catch(error => {
    console.error('Error:', error);
  });

위의 예시 코드에서 getRecipeData() 함수를 호출하여 레시피 데이터를 가져온 후, 반환된 Promise가 then() 메서드를 통해 레시피 데이터를 출력합니다. 요청이 실패한 경우에는 catch() 메서드를 통해 에러를 처리합니다.

결론

Promise를 사용하면 비동기 작업을 효율적으로 처리할 수 있습니다. 이번 기술 블로그에서는 Promise를 사용하여 요리 레시피 기능을 개발하는 방법에 대해 알아보았습니다. Promise를 활용하면 코드의 가독성도 증가시킬 수 있으며, 비동기 작업을 간단하게 관리할 수 있습니다.

#Promise #레시피기능개발