javascript

· JavaScript
기술 면접 대비를 위해 주요한 개념을 복습하고, 나의 말로 정리를 해본다. 자바스크립트 비동기 처리 과정 & Event Loop 자바스크립트 엔진은 기본적으로 하나의 Thread에서 동작함 하나의 Thread === 하나의 Stack === 동시에 단 하나의 작업만 할 수 있다 자바스크립트 엔진은 하나의 코드 조각을 하나씩 실행, 비동기적으로 이벤트를 처리하거나 Ajax 통신을 하는 작업은 사실상 Web API에서 모두 처리 자바스크립트가 동시에 단 하나의 작업만 한다고 하는데, 어떻게 여러가지 작업을 비동기로 할 수 있을까? → Event Loop와 Queue 덕분 이벤트루프는 반복해서 Call Stack과 Queue 사이의 작업을 확인하고, Call Stack이 비워진 경우 Queue에서 작업을 꺼내..
· JavaScript
this ? 자바스크립트에서 this는 무엇을 의미할까? 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수(self-reference variable)를 말한다. 여기서 가리키는 대상이 '또는'으로 바뀌는 이유는, 어디에서 어떻게 호출하느냐에 따라 this의 값이 결정되기 때문이다. 전역 범위 전역 범위(Global context), 자바스크립트에서 일반적으로 this를 호출하면, this는 window라는 전역 객체를 가리킨다. window 객체라는 것은 현재 실행되고 있는 자바스크립트의 모든 변수, 함수, 객체 DOM 등을 포함하고 있는 객체로, 만물의 근원이 되는 객체이다. 함수 범위 함수 내에서 this를 호출할 경우, 현재 실행되고 있는 코드의 문맥(context)에 따라..
· JavaScript
얕은 복사 vs 깊은 복사 한마디로 정리하면 얕은 복사는 객체의 참조값(메모리 주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사한다. 얕은 복사와 깊은 복사를 이해하기에 앞서 데이터 타입에 대한 이해가 필요하다. 데이터 타입 자바스크립트에서 모든 데이터는 원시형과 참조형으로 두 가지 데이터 타입이 존재하는데, 원시형(기본형, Primitive type)은 기본 자료형(단순한 데이터)를 의미한다. number, string, boolean, null, undefined 등이 해당한다. 변수에 원시값을 저장하면 변수의 메모리 공간에 실제 데이터 값이 저장된다. 할당된 변수를 조작하려고 하면 저장된 실제 값이 조작된다. 참조형(Reference type)은 여러 자료형으로 구성되는 메모리에 저장된 객..
· JavaScript
이중 등호(==)와 삼중 등호(===)의 차이 자바스크립트에서 이중 등호(==)와 삼중 등호(===)는 모두 비교에 사용되며, 비교 대상간의 동일성 또는 동일성의 정도를 파악하는데 사용된다. 두 가지 모두 비교 대상이 동일하면 true를 반환하고, 그렇지 않으면 false를 반환한다. 결과를 내는 방식은 같지만, 이 둘은 서로 다른 기준을 사용해 동일성을 판단한다. 이중 등호(==)는 비교를 하기 전 유형 강제를 수행하기 때문에 종종 '느슨한 등호'라고도 한다. 즉, 비교하려는 피연산자의 데이터 타입이 다른 경우 자바스크립트 엔진은 비교를 가능하게 하기 위해 피연산자 중 하나를 다른 피연산자와 동일하게 자동 변환한다. const a = 100; const b = '100'; console.log(a ==..
· Algorithm
문제 설명 신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다. 어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Ziv–Welch) 압축을 구현하기로 했다. LZW 압축은 1983년 발표된 알고리즘으로, 이미지 파일 포맷인 GIF 등 다양한 응용에서 사용되었다. LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. 입력에서..
· Algorithm
문제 설명 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자 코딩 능력만 본다 카카오, 신입 공채.. "코딩 실력만 본다" 카카오 "코딩 능력만으로 2018 신입 개발자 뽑는다" 기사의 제목을 기준으로 "..
Jyophie
'javascript' 태그의 글 목록