자바스크립트

자바스크립트에서 비동기 처리와 비동기를 어떻게 처리하는지 정리해보자. 비동기 처리 동기와 비동기는 상반된 개념이다. 동기는 순차적으로 코드가 실행되는 것을 말한다. 동기 처리 방식은 순차적으로 코드가 실행되어서 이해하기가 직관적이지만 한 가지 문제가 있다.  이전 코드가 끝나기 전까지는 아무것도 하지못해서 다음 코드로 넘어갈 수 없다는 것인데, 아주 쉬운 예로는 자장면을 배달하시는 배달부가 짜장면을 배달하고, 손님이 짜장면을 전부 먹을 때까지 다른 일도하지못하고, 계속해서 대기해야하는 것과 비슷하다.  그래서 비동기 처리 방식이 등장한다.  비동기 처리는 꼭 순차적으로 동작하지 않는다. 위의 예시로 보자면, 배달부가 자장면을 배달하고 손님이 식사할 동안 다음 장소로 이동할 수 있는 것이다. 여기서 한 가..
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()의 동작이..
컴파일러와 인터프리터 컴파일러 언어와 인터프리터 언어, 두 가지 언어에 대해서 살펴보자  컴파일러와 인터프리터에 대한 쉽고 재밌는 영상이 하나 있다! 인터프리터와 컴파일러 (한국어 자막을 켜고 보세요)   우리가 쓰는 소스코드는 컴퓨터가 이해하지 못한다. 그래서 이런 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역해주는 것이 컴파일러와 인터프리터 언어이다.  예를 들어, 자바스크립트는 사람이 이해하기 쉬운 형태이지만, 이런 영어 단어?의 집합을 컴퓨터는 이해하지 못한다. 그래서 일정한 규칙을 가지고 컴퓨터가 이해할 수 있게끔 바꾸어주는 것이다! 컴파일러는 무엇일까?우선 컴파일러는 무엇일까?  컴파일러는 프로그램 전체를 스캔하여 명령어를 번역해주는 프로그램을 말한다. 프로그램 전체를 스캔해야하기 때문에..
문제https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이전형적인 BFS 문제이지만, 자바스크립트로 풀려니 구현 방식에서 고민이 많이 되었다. 우선 처음 작성한 코드를 살펴보며 자바와 다르게 고민했던 부분들을 정리해보겠다.function solution(maps) { var answer = -1; const N = maps.length; const M = maps[0].length; const dr = [-1,1,0,0]; c..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이우선 순위 큐를 구현해야하는 문제이다. 자바에서는 라이브러리를 불러오면 쉽게 해결되지만, 자바스크립트에서는 직접 구현을 해야한다. 우선 순위 큐를 어떻게 구현할 수 있을까? 우선 순위 큐는 힙 자료 구조를 알면 쉽게 접근해볼 수 있다. 힙은 완전 이진 트리의 일종이다. 특징은 부모 노도의 키 값이 자식 노드의 키 값보다 항상 큰 이진 트리이다. 여기서 힙의 종류는 두 가지가 있다.어려운 것은 아..
동구름이
'자바스크립트' 태그의 글 목록