성공적인 연애를 하기 위해서는 먼저 상대방에 대해 알아야 합니다. 상대방에 대해 모른채 무작정 데이트만 한다면 그 연애는 성공하기 힘듭니다. 한 송이의 꽃을 선물하더라도 상대방이 좋아하는 꽃을 선물해야 합니다. 그래야 성공적인 연애를 할 수 있습니다.
fetch()는 프론트엔드와 백엔드를 연결하는 방식입니다. fetch()에 대해 잘 알아야 성공적인 연결(서비스 통합)을 할 수 있습니다. fetch()를 이해하려면 먼저 Promise에 대해 알아야 합니다. fetch()가 Promise를 반환하기 때문입니다.
Promise를 이해하려면 먼저 JS 동작 방식에 대해 알아야 합니다. Promise가 JS의 단점을 극복하기 때문입니다. JS는 싱글 스레드(Single Thread)에서 동작합니다. 하나의 요청에 하나의 응답이 오기 전까지 다른 일을 수행할 수 없습니다. 이건 싱글 스레드의 큰 단점입니다. 이를 Promise가 극복해줍니다.
Promise는 함수 실행 후 Promise에 명시된 사항을 실행해줍니다. 아직 응답이 오기 전이라도 말이죠. 또한 Promise는 콜백 지옥(Callback Hell)에서 우리를 구원해줍니다.
Promise의 상태는 세 가지입니다. Pending, Fulfilled, Rejected.
Pending은 오퍼레이션이 끝나길 기다리는 상태입니다. 오퍼레이션이 성공적으로 끝나면 resolve 함수를 통해 오퍼레이션이 끝났음을 알리고 원하는 값을 전달할 수 있습니다.
resolves는 then의 매개변수로 넘어오는 함수를 실행합니다. 만약 문제가 생기는 경우 then의 두 번째 인자로 들어오는 reject 함수를 실행합니다. 예외가 발생한다면 catch의 매개변수로 넘어오는 함수를 실행합니다.
React.js, 스프링 부트, AWS로 배우는 웹 개발 101
김다정 지음ㅣ에이콘출판ㅣ2022ㅣ도서 정보