본문 바로가기

프레임워크/Nest.js

Promise 객체란?

Promise 객체

💡 자바스크립트의 비동기 프로그래밍을 다루기 위한 객체

 

- 비동기 작업의 완료 또는 실패에 따른 결과를 나타내며, 그 결과를 나중에 사용할 수 있도록 해준다.

 

 

1. 대기(Pending) : Promise가 아직 완료되지 않은 상태

 

2. 이행(Fulfilled) : 비동기 작업이 성공적으로 완료된 상태

 

3. 거부(Rejected)  : 비동기 작업이 실패한 상태

 

 ✅Promise는 .then(), .catch(), .finally() 메서드를 사용하여 해당 작업의 결과를 처리할 수 있다.

 


NestJS에서의 Promise 활용

- NestJS는 비동기 프로그래밍을 지원하기 위해 Promise를 널리 사용한다.

예를 들어, 데이터베이스에서 정보를 조회하거나 외부 API에 요청을 보낼 때 Promise를 사용하여 결과를 비동기적으로 처리한다.

 

 

 

다른 프로그래밍 언어에서도 비슷한 개념

1. JavaScript

  • Promise : 비동기 작업의 결과 값을 받기 위해 Promise 객체를 사용한다.
    예를 들어, API 호출이나 타이머와 같이 시간이 소요되는 작업을 관리한다.

2. Python

  • asyncio : Python에서는 async와 await 키워드를 사용하여 비동기 프로그래밍을 지원한다.
    • 또한 Promise와 유사한 future와 task 객체가 사용되며, 비동기 작업의 결과를 처리한다.
import asyncio  

async def main():  
    print("Hello")  
    await asyncio.sleep(1)  
    print("World")  

asyncio.run(main())

 



 

📌 정리

  •  Promise는 '언젠가 이 일이 끝나면 알려주세요' 라고 생각하면 된다.
  • 일이 완료되면 사용자에게 알려주고 (이행), 만약 일이 실패하면 실패했다는 사실을 알려준다.(거부)
  • 이런 방식으로 Promise를 사용하면, 웹 애플리케이션이 여러 작업을 동시에 처리하면서도 열려있는 작업의 결과를 나중에 받아볼 수 있도록 쉽게 관리할 수 있다.

✅ 즉, Promise는 비동기 작업을 더 간편하고 명확하게 처리할 수 있도록 돕는 도구이다.

 

728x90
SMALL

'프레임워크 > Nest.js' 카테고리의 다른 글

ASYNC와 AWAIT란?  (0) 2025.01.23