화살표함수 기존의 function 표현방식보다 간결하게 함수를 표현할 수 있다. 화살표함수는 항상 익명이며, 자신의 this, arguments, super, new.target을 바인딩하지 않는다. 따라서 생성자로는 사용할 수 없다. 화살표함수 도입 영향 : 짧은 함수, 상위 스코프 this 짧은 함수 var materials = ...
Promise, async/await
Promise 비동기로 처리하기 위한 방법 중 하나. 다음과 같이 사용 //Promise 선언 var _promise = function (param) { return new Promise(function (resolve, reject) { window.setTimeout(function () { if (param) { ...
this에 대해서
this에 대해서 자바스크립트에서 모든 함수는 실행될때마다 함수 내부에 this라는 객체가 추가된다. arguments라는 유사배열 객체와 함께 함수 내부로 암묵적으로 전달되는 것이다. 그렇기 때문에 자바스크립트에서의 this는 함수가 호출된 상황에 따라 그 모습을 달리한다. 상황 1. 객체의 메서드를 호출할때 객체의 프로퍼티가 함수일 경우 ...
closure
Closure 두개의 함수로 만들어진 환경으로 이루어진 특별한 객체의 한 종류이다. 여기서 환경이란, 클로저가 생성될 때 그 범위에 있던 여러 지역변수들이 포함된 context를 말한다. 이 클로저를 통해서 자바스크립트에는 없는 private 속성/메소드, public 속성/메소드를 구현할 수 있다. 클로저 생성하기 다음은 클로저가 생성되는 ...
hoisting
호이스팅은 변수를 끌어올리는 것. var로 선언된 모든 변수 선언을 hoist한다. hoist란 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되는 것을 의미한다. 즉, 함수 내의 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것 자바스크립트에서 변수의 선언은 끌어올려진다. 다음의 코드를 보자. function getX()...
javascript 이벤트루프
이벤트 루프 javascript를 공부하다보면 아래와 같은 말을 종종 듣는다. 싱글스레드 기반으로 동작하는 자바스크립트 이벤트 루프를 기반으로 하는 싱글스레드 Node.js 정말 싱글 스레드인가? 어떻게 싱글 스레드인가? 이벤트 루프는 무엇인가? 를 간단히 알아보기 위해 자바스크립트가 동작하는 환경과 엔진에 대해 알아보자. Ja...
알고리즘 개요
DP 복잡한 문제를 간단한 여러 하위문제로 나누어 푸는 방법 두가지 구현방식이 존재함 top-down 여러개의 하위문제로 나누고, 하위문제를 푼 다음, 그것들을 결합하여 최종적으로 최적해를 구한다. 이때 하위문제로 나눌때 같은 하위문제를 가지고 있는 경우가 있다. 이때의 최적해를 저장해서 사용하여 같은 하위문제...
singleton
Singleton 패턴 애플리케이션에서 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등의 경우, 인스턴스를 여러 개 만들게하면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 목적이다. 구현 하나의 인스턴스만을 유지하기 위해 인스턴...
데이터베이스 개요
데이터베이스 파일시스템의 문제점 앱과 상호 연동되어있기 때문에 다음과 같은 문제가 발생함. 데이터 종속성 데이터 중복성 데이터 무결성 데이터베이스 특징 데이터 독립성 물리적 독립성 : 데이터베이스를 수정하더라도, 응용 프로그램을 수정할 필요는 없음 ...
React) JS 다운로드 시간 동안의 로딩 화면
최근 프로젝트에서 리액트 앱을 배포하였는데, 인터넷 속도가 느린 환경에서 자바스크립트를 다운로드 받는 시간이 오래 걸린다는 걸 눈치챘다. 눈치챘다는 표현이 어울리는데 왜냐하면 사실 당연한 건데 이제까지 신경쓰지 않았던 부분이기 때문이다. 리액트앱은 매우 큰 자바스크립트 파일 하나로 이루어져있고, 이를 다운로드 받는 것은 당연히 오래 걸리는 일이기 때...