IT/Concept(15)
-
Javascript의 프로토타입이란?
자바스크립트는 함수형을 기반으로 하는 class-free 프로토타입 기반 객체지향 프로그래밍 언어다. ES6에서 class가 정식 문법이 되었지만 이 또한 결국 javascript 객체지향의 근간인 prototype 방식을 문법적으로 class처럼 보이게 만들어준 도구에 불과할 뿐이다. 그렇다면 프로토타입이란 무엇일까? 1. 자바스크립트의 탄생 Brendan Eich가 자바스크립트를 처음 설계할 당시, 웹브라우저에서 간단하게 돌아가는 작은 스크립트를 만들고자 했다. 때문에 복잡한 class 문법을 도입하지 않고 LISP 등의 함수형 언어에서 아이디어를 차용해 언어를 설계하고자 했다. 그러나 Netscape의 상사는 시대적으로 당시 인기가 많았던 Java와 유사한 언어를 만들길 원했고 결국 class 문법..
2022.08.08 -
자바스크립트의 this
자바스크립트에서 this의 쓰임새는 대표적인 객체지향 언어인 Java 등과 약간 다르다. 자바스크립트에서는 함수 호출 방식에 따라 this에 바인딩 되는 객체가 달라진다. 1. 자바스크립트 함수 호출 방식 자바스크립트에서 함수 호출 방식은 크게 다음 4가지가 있다. 일반적인 함수 호출 메소드 호출 생성자 함수 호출 (객체 생성 함수) apply/call/bind 호출 각각의 경우에 대한 this 바인딩을 알아보자. 이후 화살표 함수에서의 this 바인딩에 대해 알아보자. 2. 일반적인 함수 호출 this는 전역 객체를 가리킨다. const foo = function(){ console.log(this); } foo(); // window 3. 메소드 호출 this는 해당 메소드를 소유한 객체에 바인딩된다..
2022.08.04 -
var, let, const, 그리고 Hoisting
자바스크립트에서 변수 선언을 위한 키워드로 var, let, const가 있다. 이들의 특징을 살펴보고 이와 연관지어 호이스팅이라는 재미있는 개념 또한 알아보자. 1. var ES6 이전 자바스크립트에서 변수 선언 시, var를 앞에 붙였다. var 키워드를 사용하면, 변수를 재선언하거나 재할당하는 것이 가능하다. var는 또한 함수 레벨 스코프를 지녔다. 즉, 지역 스코프가 함수 내부에서만 만들어지기 때문에, for문, if문 등의 문 내부에서만 사용하고 싶은 값들이 의도치 않게 전역 변수를 바꿀 수도 있다. 모던 웹 개발 세계에서 var는 사용하지 않는다고 봐도 무방하다. 2. let과 const let과 const는 var와 다르게 블록 레벨 스코프다. 때문에 함수가 아닌 블록을 기준으로 지역 스코..
2022.08.01 -
웹의 역사, 그리고 프론트엔드
개념을 파악할 때 역사적 맥락에서 이해하면 핵심을 놓치지 않으며, 디테일을 가져갈 수 있고, 기억에 또한 오래 남는다. 그런 의미에서 웹과 프론트엔드의 역사를 살펴보고 이를 통해 미래를 더듬어 보자. 1. 초기의 웹, Web 1.0 1990년, 최초의 웹은 정보 제공이 목적이었다. 가상 공간에서 문서를 쉽게 제작하고, 하이퍼텍스트를 통해 문서와 문서를 연결하여 많은 사람들에게 문서가 공유될 수 있도록 하는 역할을 수행했다. 이후 1990년대 중반, CGI(Common Gate Interface) 통신이 가능해졌다. 유저들은 정보를 서버로 보내고 서버에서는 동적으로 페이지를 생성할 수 있게 되었다. PHP를 비롯해 여러 서버 스크립트 언어들이 탄생했다. 이 무렵, 서버와 통신하기 위한 간단한 조작이 클라이..
2022.07.28 -
Computing Systems, 그리고 추상화
The notion of abstraction, central to many arts and sciences, is normally taken to be a mental expression that seeks to separate in thought, and capture in some concise manner, the essence of some entity. In computer science, we take the notion of abstraction very concretely, defining it to be a statement of “what the entity does” and ignoring the details of “how it does it.” -From [The Elements..
2022.06.14 -
Microservices Architecture 란?
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. -Martin Fowler 1. 개요 마이크로서비스 아키텍처란 어플리케이션 개발을 위한 아..
2022.06.01