비동기

이전에 JS의 이벤트 루프에 대해 정리해봤다. 이번에는 조금 더 깊게 공부해보자. JS는 싱글스레드 언어싱글 스레드는 한 번에 하나의 작업만 수행할 수 있다. Python과 Java는 멀티 스레드를 지워해 여러 코드 로직은 동시에 실행할 수 있지만, JS는 싱글 스레드 언어이기 때문에 하나의 코드만 실행할 수 있다. 하지만 웹 애플리케이션에서는 네트워크 요청, 타이머, 이벤트 처리와 같은 작업을 비동기적으로 병렬 처리하는 경우가 있다. JS가 하나의 동작씩 동작한다면 위와 같은 동작을 하는 웹 애플리케이션은 굉장히 느릴것이다. 이러한 속도 저하 문제를 해결하기 위해서 JS 언어 엔진에서가 아닌 브라우저 내부의 멀티 스레드인 Web APIs에서 비동기 및 논블로킹으로 작업을 처리한다. 위와 같은 방법은 메..
동기(Synchronous) 방식 동기 방식은 코드가 작성된 순서대로 작업이 순차대로 진행되는 방식을 의미하며, 이전 작업이 완료되기 전까지 다음 작업을 진행하지 않는 특징이 있다. 동기적으로 코드를 작성하면 직관적인 코드를 작성하기 쉽다는 장점이 있다. 하지만, 한꺼번에 여러 작업을 수행하는 코드에서는 이전 작업의 완료를 기다리며 전체 프로세스의 성능이 저하될 수 있다는 단점이 있다. 웹에서는 API 혹은 서버와의 통신에서 위와같은 문제가 발생해 성능 저하가 발생할 수 있다. 이러한 문제는 페이지 로딩 속도 저하, 상호작용의 반응 속도 저하 등의 원인이 될 수 있다.  비동기(Asynchronous) 방식비동기 방식은 코드가 작성된 순서대로 동작은 하지만 이전 작업의 완료 여부에 따라 기다리지 않고 독..
1. 즉시 실행 함수 표현식의 조건 IIFE는 2가지 조건을 갖는다. 즉시 실행해야 한다. 함수 표현식이어야 한다. ➡ 함수 선언문이 아닌 즉, 함수 표현식을 즉시 실행하는 것을 의미하며 해당 함수는 익명함수와 기명함수 모두 가능하다. (function(){ console.log('IIFE'); })(); 위의 코드에서 익명함수로 표현된 함수를 괄호로 감쌌는데, 괄호를 사용하지 않고 작성하게 되면 함수 표현식이 아니라 함수 선언문이 되기 때문에 괄호를 이용해 함수 표현식으로 만든 것이다. 2. 3가지 즉시 실행 함수 표현식 문법과 화살 표현식 IIFE는 3가지 형태로 표현할 수 있다. 2-1 논리 부정 연산자(!) 논리 부정 연산자를 이용해 IIFE를 구현할 수 있다. 이렇게 하면 함수는 undefine..
58청춘
'비동기' 태그의 글 목록