면접질문 정리해보기 4
in Devlog on Devlog
- 동기식(sync) 프로그래밍와 비동기식(async) 프로그래밍의 차이?
- 동기식 프로그래밍은 어떠한 코드가 실행되고 완료될때까지 기다렸다가 다음 코드를 실행하는 것이고, 비동기식 프로그래밍은 어떠한 코드가 실행되고 완료되는걸 기다리지 않고 다음 코드를 먼저 실행하는 것 입니다.
- XHR?
- XmlHttpRequest의 약자이고 서버와 상호작용을 할 수 있는 브라우저 객체입니다. ajax 프로그래밍에 주로 사용됩니다.
- ajax?
- Asynchronous Javascript and Xml의 약자이고, 페이지 전체를 리로드 하지 않고 페이지에서 데이터가 변경되는 그 일부만 리로드 하는 기법입니다.
- ajax 장단점?
- 전체 페이지를 리로드하지 않기 때문에 웹페이지의 속도가 향상되고, 서버에서 데이터만 전송하면 되므로 전체적인 코딩의 양이 줄어듭니다.
- 비동기 프로그래밍이란?
- 특정 코드의 연산이 끝날 떄 까지 코드의 실행을 멈추고 기다리는 것이 아니고, 다음 코드를 먼저 진행하는 것입니다.
- 콜백 함수란?
- 함수의 인자로 넘겨지는 함수이고, ES6 이전에 비동기 프로그래밍을 할 떄 사용 된 방법입니다.
- Promise ?
- 콜백 함수로 비동기 처리를 하다가 콜백 지옥에 빠지게 되어서 ES6에서 새로 나온 문법이고 비동기 처리를 할 때 사용되는 객체입니다. 프로미스를 사용하면 비동기 작업을 연달아서 진행할 때 코드를 깔끔하게 작성할 수 있습니다.
- Promise의 동작 방법?
- 먼저 Promise는 언젠가 끝나는 작업의 결과값을 담는 통이라고 할 수 있습니다. 비동기 처리가 끝나고 이 통에 결과값이 채워지면 그 떄 실행할 코드를 then 메소드를 사용해서 작성할 수 있습니다. then 메소드로 작성된 코드의 반환값도 Promise이기 때문에 여기에 또 then 메소드를 사용할 수 있습니다. 이런식으로 비동기 처리를 이어서 진행할 수 있습니다.
- 비동기 함수?
- ES2017에 새로 나온 문법이고 함수 앞에 async라는 키워드를 붙이면 이 함수는 비동기 함수가 됩니다. 비동기 함수는 Promise 객체를 반환하고, 비동기 함수 내에서 await라는 키워드를 사용할 수 있는데, 이 키워드 뒤에 오는 코드들의 결과값이 Promise에 담기게 됩니다. 그래서 Promise에 결과값이 찰 때 까지 비동기적으로 다른 코드를 처리합니다. 동기식 코드를 짜듯이 비동기식 코드를 짤 수 있다는 큰 장점이 있습니다.