상권's

TIL 56 (복습) 본문

~2022 작성 글/TIL

TIL 56 (복습)

라마치 2022. 2. 9. 17:41

* 앞 서 학습했던 내용을 복습하기 위해 질문과 답변 형태로 작성했습니다. 질문에 대해 개인적으로 이해하고 작성한 답변이기에 내용이 빈약하거나, 오류가 있을 수 있다는 점 양해 부탁드립니다.

 

promise(프로미스)의 개념에 대해서 설명하고, 콜백 함수 방식과 차이점을 설명해주세요.

프로미스를 간단하게 설명하면 내용이 실행은 되었지만, 결과는 아직 반환하지 않은 객체할 수 있습니다.

자바스크립트에서 비동기 처리에 사용되는 객체입니다. new Promise로 생성하며, 그 내부에 resolve와 reject를 매개변수로 갖는 콜백함수를 넣습니다. resolve가 호출되면 then 이 실행되고, reject가 호출되면 catch가 실행이 됩니다.

 

반면, 콜백함수는 함수 내에서 매개변수로 전달된 함수를 의미합니다. 콜백함수는 나올 때마다 콜백 함수의 깊이가 깊어지며 이에 따른 콜백지옥을 발생시킬 수 있습니다. 프로미스를 통해서 이러한 콜백지옥을 깔끔하게 구현할 수 있습니다.

 

이 두 방식의 차이는 크게 에러처리와 코드 실행과 결과 분리입니다. 먼저, 매번 에러 처리를 해줘야하는 콜백함수와는 달리 프로미스는 맨 마지막 catch를 통해서 에러를 처리할 수 있습니다. 다음으로 프로미스는 코드의 실행과 결과를 분리할 수 있습니다. new Promise로 생성 후, 다른 작업이 이루어진 이후에 promise then이나 catch를 통해서 결과를 반환할 수 있습니다.

 

리팩토링 계획 : 회고에서도 언급했던 것처럼 예외처리가 미숙했습니다. try & catch, then & catch를 적절하게 사용하여 예외처리할 예정

 

브라우저에서 URL을 입력하고 요청한 페이지를 볼 때까지 어떤 일이 일어나는지 설명해주세요

URL을 입력하면 브라우저는 HTTP 메세지를 생성합니다. HTTP 메세지는 SOCKET 라이브러리를 통해 TCP/IP 연결(3 way handshake) 후 데이터가 전달됩니다. 이후 TCP/IP 패킷이 생성되고 LAN을 통해 서버로 전달됩니다.

메세지를 받은 서버는 응답 메세지를 전송하고 클라이언트가 해당 메세지를 받으면 HTML이 랜더링되면서 요청한 페이지를 볼 수 있습니다.

 

(HTTP 요청과 응답 부분에 대해서 더 깊이 학습한 후 내용 추가할 예정입니다.)

'~2022 작성 글 > TIL' 카테고리의 다른 글

TIL 58 (북담 서버 리팩토링1)  (0) 2022.02.12
TIL 57 (복습)  (0) 2022.02.10
TIL 55 (복습)  (0) 2022.02.06
TIL 54 (복습)  (0) 2022.02.04
TIL 53 (배포 자동화)(2021.12.06)  (0) 2021.12.06
Comments