그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록JavaScript
JavaScript

Promise의 resolve()와 fulfilled에 대해서 설명해주세요.

실무3/5
설계2/5
인간3/5
기초4/5

면접관의 질문 의도

resolve를 단순히 '성공 처리'로만 외우는지, 아니면 상태 머신 관점에서 행위와 상태를 구분하고 assimilation 같은 가장자리까지 풀어 설명할 수 있는지를 가른다.

큐레이션 답변

학습 자료

resolve()는 Promise를 "완료로 확정"하는 함수가 아니라, 전달한 값을 기준으로 다음 상태를 결정하는 전이 함수다. 일반 값을 넘기면 fulfilled로 끝나지만, 다른 Promise나 thenable을 넘기면 그 결과를 따라가며 최종 상태가 나중에 정해진다(assimilation). 즉 resolve를 호출했어도 안에 넘긴 Promise가 reject되면 결과는 rejected가 된다. resolve는 행위, fulfilled는 그 행위가 도달할 수 있는 최종 상태 중 하나라는 구분이 정확하다.

좋은 답변 구조

  1. 01resolve가 함수 호출(행위)이고 fulfilled가 상태라는 층위 차이를 먼저 분명히 한다
  2. 02resolve에 넘긴 값 종류에 따라 상태가 어떻게 결정되는지 단계로 설명한다
  3. 03다른 Promise를 넘겼을 때의 assimilation을 들어 resolve가 곧 fulfilled가 아닌 이유를 보여준다
  4. 04이 구분이 then/catch 체인 설계와 에러 분기에 어떻게 연결되는지로 마무리한다

자주 실수하는 포인트

resolve() 호출을 곧바로 fulfilled 상태로 등치시키고 assimilation 단계를 빠뜨린다
resolve에 reject된 Promise를 넘겨도 결과는 fulfilled라고 단정한다
행위(resolve)와 상태(fulfilled/rejected)를 같은 층위 단어로 섞어 쓴다
settled와 fulfilled의 차이를 잡지 못해 then이 언제 실행되는지 설명이 흐려진다

실무 맥락

  • fetch나 외부 라이브러리에서 받은 Promise를 다른 Promise로 감싸 재가공하는 환경
  • 공통 모듈이 Promise를 만들어 반환하고 호출부가 then/catch를 붙여 쓰는 구조
  • 테스트 코드에서 비동기 흐름을 수동으로 제어하려고 resolve를 직접 호출하는 상황

본인 경험에 녹이는 힌트

Promise 체인이 예상과 다르게 흘러서 디버깅했던 경험을 상태 전이 모델과 묶어 설명할 수 있다

resolve에 다른 Promise를 넘겨 의도치 않게 흐름이 한 틱 더 늘어졌던 사례를 풀어 말할 수 있다

async/await 안에서 reject가 throw로 어떻게 바뀌는지 추적해본 경험과 연결할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1resolve를 두 번 호출하면 Promise의 상태는 어떻게 됩니까
Q2resolve에 이미 reject된 Promise를 넘기면 최종 상태는 무엇입니까
Q3fulfilled와 settled는 어떻게 다르고 언제 그 구분이 필요합니까
Q4async 함수의 return 값과 throw는 각각 어떤 상태로 매핑됩니까
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문