JavaScript/JS를 파헤쳐보자

자바스크립트에서 비동기 처리와 비동기를 어떻게 처리하는지 정리해보자. 비동기 처리 동기와 비동기는 상반된 개념이다. 동기는 순차적으로 코드가 실행되는 것을 말한다. 동기 처리 방식은 순차적으로 코드가 실행되어서 이해하기가 직관적이지만 한 가지 문제가 있다.  이전 코드가 끝나기 전까지는 아무것도 하지못해서 다음 코드로 넘어갈 수 없다는 것인데, 아주 쉬운 예로는 자장면을 배달하시는 배달부가 짜장면을 배달하고, 손님이 짜장면을 전부 먹을 때까지 다른 일도하지못하고, 계속해서 대기해야하는 것과 비슷하다.  그래서 비동기 처리 방식이 등장한다.  비동기 처리는 꼭 순차적으로 동작하지 않는다. 위의 예시로 보자면, 배달부가 자장면을 배달하고 손님이 식사할 동안 다음 장소로 이동할 수 있는 것이다. 여기서 한 가..
Worker Thread와 의문의 시작 worker thread를 만나고 오늘 하루가 고되기 시작했다. 아래 내용들 때문인데, 자연스럽게 Node의 이벤트 루프와도 연관지어 생각해볼 수 있어서 좋았다.  우선, Worker Thread는 이름 그대로 작업을 진행하는 스레드를 말한다. Worker Thread를 통해 메인 스레드와 분리할 수 있고, 그런 점으로 인해 복잡한 로직을 다른 곳에서 처리할 수 있게 해서 사용성을 증가시킬 수 있다. 자바스크립트는 단일 스레드 아닌가? 그런데 오늘 구현을 하면서도 들었던 의구심이 한 가지 있었는데 자바스크립트는 단일 스레드를 사용하는 것으로 알고 있었다. 그런데 어떻게 스레드를 하나 더 사용할 수 있을까 라는 생각이었다.  이때 간과했던 점이 한 가지가 있었다. 자..
Call Stack콜 스택이란 무엇일까. Call Stack은 함수를 사용할 때마다, 관련된 정보들이 쌓이는 곳이다. 단어를 그대로 보면, Call 은 호출을 말하고 Stack은 자료 구조인 Stack을 말한다. 즉 함수가 호출될 때 스택에 정보가 쌓이는 곳을 콜스택이라고 한다.  프로그램에서 함수들이 연쇄적으로 호출될 때, 스택의 형태로 메모리에 들어왔다가 나가게 된다.function f1() { f2();}function f2() { f3();}function f3() {}f1(); 아주 간단한 예시로 살펴보자 위 프로그램을 실행시키면 어떻게 될까? 스택에 위의 형태로 쌓이게 된다. f1()이 실행되며 먼저 쌓이고, 2 3 이 순서대로 들어온다.  f3()이 실행이 완료가 되어야 f2()의 동작이..
컴파일러와 인터프리터 컴파일러 언어와 인터프리터 언어, 두 가지 언어에 대해서 살펴보자  컴파일러와 인터프리터에 대한 쉽고 재밌는 영상이 하나 있다! 인터프리터와 컴파일러 (한국어 자막을 켜고 보세요)   우리가 쓰는 소스코드는 컴퓨터가 이해하지 못한다. 그래서 이런 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역해주는 것이 컴파일러와 인터프리터 언어이다.  예를 들어, 자바스크립트는 사람이 이해하기 쉬운 형태이지만, 이런 영어 단어?의 집합을 컴퓨터는 이해하지 못한다. 그래서 일정한 규칙을 가지고 컴퓨터가 이해할 수 있게끔 바꾸어주는 것이다! 컴파일러는 무엇일까?우선 컴파일러는 무엇일까?  컴파일러는 프로그램 전체를 스캔하여 명령어를 번역해주는 프로그램을 말한다. 프로그램 전체를 스캔해야하기 때문에..
동구름이
'JavaScript/JS를 파헤쳐보자' 카테고리의 글 목록