본문 바로가기

전체 글

(147)
Browser & window 브라우저가 하는 일 크롬, 사파리, 파이어폭스, 네이버 웨일과 같은 것들이 브라우저이다. 우리는 "브라우저" 라는 소프트웨어 프로그램을 통해서 웹 페이지에 접근할 수 있다. 브라우저에서 웹 페이지를 열면 어떤 일이 일어날까? 브라우저의 주소창에 우리가 원하는 웹 페이지의 주소를 입력하면, 우리는 웹 페이지를 볼 수 있게된다. 그 뒤에서는 어떤 일들이 일어나고 있을까? window에 저장되어 있는 데이터 | window 자바스크립트는 웹 브라우저에서 실행시키기 위해 만들어진 프로그래밍 언어이다. 지금은 브라우저 뿐만 아니라, 브라우저 밖(ex. web-server)에서도 실행시킬 수 있도록 진화했다. 브라우저나 웹 서버와 같이, 프로그래밍 언어가 실행되는 환경을 Host Environment라고 한다. 각..
What is the Web? What is the Web? World Wide Web은 인터넷을 기반으로 한 정보 체계이고, 이러한 정보를 서버로부터 받아와서 우리의 컴퓨터에 잘 보이도록 돕는 것이 크롬, 사파리, 파이어폭스 등과 같은 웹 브라우저 프로그램이다. 이 때 정보를 주고 받기 위해 웹에서 사용되는 커뮤니케이션 규칙을 HTTP(Hyper-Text Transfer Protocol)라고 부른다. 우리가 웹 브라우저를 통해 요청하는 정보는 documents(문서)가 될 수도 있고, 사진, 음악, 동영상 등과 같은 resources가 될 수도 있다. 무엇을 원하든지 간에, 우리는 주소창에 URL(Uniform Resource Locator)을 입력함으로써 원하는 정보를 요청한다. 서버는 url을 분석한 뒤에, 해당하는 정보를 전송..
What is the Internet? What is the Internet? 인터넷이라는 단어는 도대체 무엇을 가리키는 말일까? 먼저 단어의 의미를 쪼개 살펴보면, inter(서로 연결된) + net(그물) = 서로 연결된 그물이라는 뜻이 된다. 이 때 연결의 대상은 서로 다른 컴퓨터가 된다. 즉 인터넷이란 서로 다른 여러 대의 컴퓨터를 연결하는 그물(실제의 물리적인 선)을 말한다. 인터넷이 있는 이유는 서로 다른 컴퓨터끼리 정보를 주고 받기 위함이다. 예를 들면 메일 주고받기, 온라인 스트리밍 서비스 이용하기 등이 있다. 이렇게 인터넷을 통해 정보를 주고 받기 위해서는 공통된 커뮤니케이션 규칙이 필요한데, 이 규칙을 TCP/IP(Transmission Control Protocol/Internet Protocol)라고 부른다. 이 외에도 ..
This Before Start JS에서 this 키워드가 가리키는 것은 현재 실행되고 있는 컨텍스트, 즉 execution context(global or function)의 프로퍼티 중 하나이다. this 키워드가 어디에서 작성되었는지와 strict 모드인지, 아닌지에 따라 이 프로퍼티는 달라진다. 이것은 다른 프로그래밍 언어에서는 보기 드문 자바스크립트 언어만의 특징이다. +) execution context에는 lexical environment, variable environment가 있다. 다시 lexical environment에는 enviornment record, outer, this binding이 저장되어 있다. This keyword 1. Global context global 실행 컨텍스트..
OOP | Prototype, Class What is Prototype? Prototype의 사전적 의미 프로토타입이라는 단어 자체를 살펴보자. prototype은 "원형"이라는 뜻을 가지고 있다. 즉 완성품이 아니라, 초기에 대략적인 디자인이나 기능을 구현해 놓은 모델을 말한다. a first, typical or preliminary model of something, especially a machine, from which other forms are developed or copied. ex) "Mercedes is prototyping a car sunroof which changes from clear to tinted" JS에서 Prototype의 의미 JavaScript에서 Prototype이란, 어떤 객체가 다른 객체가 가지..
Scope, Execution context, Closure Before Start "scope"란 범위, 영역을 뜻하는 용어이다. 이번 chapter에서는 scope가 어떤 범위와 영역을 말하는 것인지부터 호이스팅, 클로저, 실행 컨텍스트의 개념 등에 대해 함께 다루어 볼 것이다. 이 개념들은 scope라는 개념을 필요로 한다는 점에서 공통된 속성을 가지고 있기 때문이다. +) global scope은 코드의 전체 범위, 즉 어떤 변수를 전역에서 참조할 수 있음을 말한다. +) 반면 local scope은 어떤 변수를 특정한 지역 내에서만 참조할 수 있음을 말한다. 이 때 특정한 지역은 { 코드 블럭 }또는 함수를 말한다. 코드 블럭은 중괄호를 사용하는 대부분의 문(statement)을 말하는데, if( ) { 조건문 }, for( ) { 반복문 } 등이 있다...
Asynchronous | callBack, promise, async & await What is Asynchronous? JavaScript 언어 자체는 single thread 언어이지만, JS 엔진의 Event Loop와 Runtime Environment(코드가 실행되는 환경)의 협업을 통해, 한 번에 여러 줄의 코드를 실행하는 것이 가능한 것처럼 동작했다. setTimeout과 같은 비동기적(asynchronous)인 일을 수행해야 할 때 이런 협업이 필요하다. 비동기적인 일이란 정확히 무엇일까? Asynchronous meaning in CS is a specific operation begins upon receipt of an indication (signal) that the preceding operation has been completed. => 이전 작업이 완료되..
Call stack & Task que Before Start 어플리케이션을 실행시키면, 메모리에는 이 어플리케이션을 위한 저장 공간이 할당된다. 그리고 현재 실행 중인 어플리케이션, 즉 메모리를 할당받은 어플리케이션을 프로세스(process)라고 한다. 이 저장 공간은 4개로 나누어 지는데, 다음과 같다. code | 우리가 작성한 source code가 저장됨 data | 전역 변수(global var)에 저장된 데이터와 primitive type의 data, 즉 정적 타입(static type)의 데이터가 저장됨 stack | 지역 변수(local var)에 저장된 데이터가 저장됨 heap | 객체 타입(object type), 즉 동적 타입(dynamict type)의 데이터가 저장됨 +) 지역 변수는 코드 블럭 내부에서 선언된 변수를..