목록전체 글 (25)
스터디
> 요청과 결과가 동시에 일어나는 방식으로, 요청을 보낸 후 응답을 받아야 다음 동작이 진행된다.요청과 결과가 한 자리에 동시에 나타나는 것으로, 요청을 하면 시간이 얼마나 걸리든지 요청한 자리에서 결과가 주어져야 한다.A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞춘다.추구하는 같은 행위(목적)가 동시에 이루어진다. > 장점순서에 맞춰 진행된다.설계가 간단하다.직관적이다. > 단점여러 가지 요청을 동시에 처리할 수 없다.요청에 대한 결과가 반환되기 전까지 대기해야 한다. > 요청과 결과가 동시에 일어나지 않는 방식으로, 요청과 결과가 동시에 일어나지 않는다.요청한 곳에 결과가 나타나지 않으며, 하나의 요청에 따른 응답을 즉시 처리하지 않아도 그 대기 시간 동안 또 다른..
async와 await라는 특별한 문법을 사용하면 Promise를 좀 더 편하게 사용할 수 있다. > asyncasync는 function 앞에 위치한다.async function func() { return 1;} function 앞에 async를 붙이면 해당 함수는 항상 Promise를 반환한다.Promise가 아닌 값을 반환하더라도 이행 상태의 Promise(resolved promise)로 값을 감싸 이행된 Promise가 반환되도록 한다.아래 예시의 함수를 호출하면 result가 1인 이행 Promise가 반환된다.async function func() { return 1;}func.then(alert); // 1 명시적으로 Promise를 반환하는 것도 가능한데 결과는 동일하다...
자바스크립트는 비동기 처리를 위해 콜백 함수를 사용하지만, 콜백을 남용하게 되면 콜백 지옥에 빠질 수 있다. 에러 처리도 힘들 뿐더러 여러 개의 비동기 처리를 한 번에 하는 데 한계가 있다. 이러한 콜백 함수의 단점을 보완하며 자바스크립트 비동기 처리에 사용되는 객체가 프로미스(promise)이다. > promise의 장점 비동기 처리 시점을 명확하게 표현할 수 있다. 연속된 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연하다. 비동기 작업 상태를 쉽게 확인할 수 있다. 코드의 유지보수성이 증가한다. const promise = new Promise((resolve, reject) => { // 비동기 작업 수행 console.log('doing something); }); ..