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 |
---|