cat

CS

CS/기타

클로저(Closure)란?

클로저를 한 문장으로 정리하면, 현재의 유효범위를 넘어 Scope Chain으로 연결되어 있는 객체, 변수등의 참조를 발생시키는 것 코드로 예를 들어보면 function outer() { var count = 0; function inner() { count++; console.log(count); } return inner; } var increment = outer(); increment(); // 1 increment(); // 2 increment(); // 3 // outer 함수는 count 변수를 선언, inner 함수 반환 // 반환된 inner 함수는 count 변수 참조, count 값을 증가시킨 후에 출력 // outer 함수를 실행하면, count 변수와 함께 inner 함수가 반환..

CS/기타

이벤트 루프(Event Loop)란?

이벤트 루프에 대한 설명 전 자바스크립트의 특징을 알아보자면, 자바스크립트는 싱글 스레드 기반의 언어로 한 번에 하나의 작업만 처리할 수 있다. 이벤트 루프는 이러한 자바스크립트의 특징으로 한 번에 한 가지 일만 처리할 수 있어서 비동기적으로 처리하기 위한 방법이라고 할 수 있다. 이벤트가 발생시 호출되는 콜백 함수들을 콜백 큐에 전달하고 콜백 큐에 담겨있는 콜백 함수들을 콜스택으로 넘겨준다. 나눠서 얘기하면, 1. 이벤트 발생! 2. setTimeout같은 콜백함수를 다시 날려주는 함수들의 이벤트 실행 시 콜백 큐로 넘겨줌. 3. 콜백 큐를 콜스택으로 다시넘겨주는 역할을 하는 게 바로 이벤트 루프. 위와 같은 과정을 통해서 싱글스레드 언어인 자바스크립트가 비동기처럼 작동할 수 있게 된다.

CS/Network

브라우저의 기본 구조

브라우저(browser)? 특정 웹사이트를 접근한다고 하자. 1. 사용자가 브라우저를 실행한다. 2. 접속하고 싶은 사이트의 url를 주소창에 입력한다. 3. 브라우저는 입력된 url의 서버에게 사이트 정보를 받아와 이를 화면에 표현한다. 4. 표현된 정보를 사용자가 활용한다. 사용자가 보고자 하는 페이지를 서버에 요청하고 서버로부터 받은 응답(HTML, CSS, JavaScript, 이미지 등..)을 브라우저에 표시하는 것이다. 주로 알고 있는 웹 브라우저로는 파이어폭스, 구글크롬, 인터넷 익스플로러, 사파리 등이 있다. 웹 브라우저라고도 하며 웹 서버에 이동하며 쌍방향으로 통신하고 HTML문서나 파일을 출력하는 그래픽 사용자 인터페이스 기반의 응용 소프트 웨어이다. - 웹 브라우저 정의 위키백과 브라..

CS/Network

www.google.com을 치면 일어나는 일

1. 브라우저는 www.google.com의 해당 IP 주소를 찾기 위해 DNS 캐시를 탐색. DNS 기록을 찾기 위해 브라우저는 다음과 같은 과정을 거친다. 1) 브라우저 캐시를 확인합니다. 브라우저는 이전에 방문한 웹사이트에 대해 일정기간 동안의 DNS 정보들을 저장해놓는다. 2) 브라우저 캐시에 없으면 브라우저는 OS에 systemcall을 통해 DNS 기록을 가져옵니다. OS도 DNS 기록들을 캐시에 기록하기 때문. 3) 라우터 캐시를 확인합니다. 컴퓨터에 없는 경우 브라우저는 자체 DNS 레코드 캐시를 유지 관리하는 라우터와 통신한다. 4) 모든 단계에 실패하면 브라우저는 ISP로 이동합니다. ISP는 DNS 캐시를 포함하는 자체 DNS 서버를 유지 관리한다. 2. 캐시에 없으면 ISP의 DNS..

여행 가고싶다
'CS' 카테고리의 글 목록 (2 Page)