콜백

타입스크립트는 타입 추론을 적극적으로 수행한다. 타입 추론은 수동으로 명시해야 하는 타입 구문의 수를 엄청나게 줄여 주기 때문에, 코드의 전체적인 안정성이 향상된다. 숙련된 타입스크립트 개발자는 비교적 적은 수의 구문을 사용한다. 반면, 초보자의 코드는 불필요한 타입 구문으로 도배되어 있다. 이번 장을 읽고 나면 타입스크립트가 어떻게 타입을 추론하는지, 언제 타입 선언을 해야 하는지, 타입 추론이 가능하더라도 명시적으로 타입 선언을 작성하는 것이 필요한 상황은 언제인지 잘 이해할 수 있다. 아이템 19. 추론 가능한 타입을 사용해 장황한 코드 방지하기 타입 추론이 된다면 명시적 타입 구문은 필요하지 않다. 오히려 방해가 될 뿐이다. let x: number = 12; // 굳이? let x = 12; /..
자바스크립트의 이벤트 루프에 대해서 정리해 보고자 한다. 단일 스레드 언어 자바스크립트 자바스크립트는 '단일 스레드' 언어이다. 하지만 실제로 우리는 자바스크립트로 여러가지 작업을 동시에 처리할 수 있다. 예를 들면 Node.js 웹서버에서 동시에 여러 개의 HTTP 요청을 처리하는 식으로 말이다. 스레드가 하나인데 자바스크립트는 과연 어떻게 동시성을 지원하는 것일까? 정답은 이벤트 루프이다. 자바스크립트는 이벤트 루프를 이용해 비동기적으로 동시성을 지원한다. 정확하게 말하면 자바스크립트 엔진(V8)에서는 이벤트 루프가 존재하지 않으며 단일 콜 스택(Call Stack)을 사용하며, 브라우저나 Node.js 환경에서 비동기 처리를 담당한다. 예를 들면 브라우저에서 비동기 호출을 위해 사용하는 setTim..
이전 포스팅 - 자바스크립트 콜백(Callback) 프로미스란 이번 시간에는 자바스크립트 프로미스에 대해서 알아보고자 한다. 이전 포스팅에서 자바스크립트가 비동기 처리를 하는 방법에 대해서 설명하면서 콜백을 소개했고, 콜백의 장단점을 설명하면서 콜백의 단점을 보완하기 위해 프로미스가 생겼다고 이야기 했었다. 조금 더 구체적으로 말하자면, 콜백으로 비동기성을 표현할 때 순차성(Sequentiality)과 믿음성(Trustability)이 결여되어 문제가 생긴다. 하나씩 살펴보자. 먼저 제어의 역전을 생각해 보자. 콜백 함수를 다른 곳으로 전달하게 되면 해당 프로그램의 진행은 그 곳에서 이루어지기 때문에 우리가 할 수 있는 일은 없고, 그저 무사히 잘 되기만을 바라는 방법밖에 없다. 이렇게 불안불안하게 코드..
지난 포스팅 : JS #7. 비동기성: 지금과 나중 지난 포스팅에서 비동기가 무엇인지, 단일 스레드 방식의 이벤트 큐가 무엇인지, 동시성 패턴 등등에 대해서 알아 보았다. 함수 안의 문은 예측 가능한 순서대로 (컴파일러 상위 수준에서) 실행되지만 함수 단위의 실행순서는 이벤트(비동기 함수 호출)에 따라 달라질 수 있다. 어떤 함수든 콜백(Callback) 역할을 한다. 왜냐하면 큐에서 대기 중인 코드가 처리되자마자 본 프로그램으로 '되돌아올' 목적지이기 때문이다. 콜백은 자바스크립트에서 비동기성을 관리하는 가장 일반적인 기법이자, 자바스크립트의 가장 기본적인 비동기 패턴이다. 물론 콜백에도 단점이 있고 이 단점을 보완하기 위해 새로운 개념들이 나오게 되었으나, 그 이전에 콜백의 실체를 정확하게 아는 것은..
DevOwen
'콜백' 태그의 글 목록