분류 전체보기

    비동기

    동기 vs. 비동기비동기의 주요 사례비동기를 순차적으로 구현하는 세 가지 방법CallBackPromise메서드 체이닝async / await타이머 API동기 vs. 비동기요청을 순차적으로 처리하는 것을 동기적(synchronous)이라고 표현한다. 먼저 들어온 요청 A를 처리하는 동안 그 이후에 들어온 요청 B를 막고(blocking), 처리가 완료되면 B을 처리하기 때문에 B의 시작 시점과 A의 완료 시점이 같은 상황을 말하는 것이다.이에 반해, 비동기(asynchronous)는 요청이 들어오는 것을 막지 않고(non-blocking) 처리가 완료된 요청은 바로 완료한다. 이는 먼저 들어온 요청 A의 완료 시점과 이후의 요청 B의 시작 시점이 다르다. 이 때, 처리하는 시점은 다르더라도 일단 후에 들어..

    고차함수

    일급 객체(first-class citizen)고차 함수(higher order function)다른 함수를 인자로 받는 경우함수를 리턴하는 경우함수를 인자로 받고 함수를 리턴하는 경우내장 고차 함수Array.filter()Array.map()Array.reduce()ex. 배열을 객체로 만드는 예제고차 함수의 중요성 : 추상화추상화값 수준에서의 추상화사고 수준에서의 추상화사고 수준의 추상화의 예시일급 객체(first-class citizen)비행기에 퍼스트 클래스, 이코노미 클래스가 나뉘어 다른 대우를 받는 것 처럼 JavaScript에는 특별한 대우를 받는 일급 객체가 존재한다. 대표적인 일급 객체 중 하나가 함수다. 함수는 아래와 같은 특별 취급을 받는다.변수에 할당(assignment) 할 수 있..

    불변성(__**Immutability)**__

    불변성 (Immutability)불변성 개념은 JavaScript에만 존재하는 것이 아닌 다른 언어에도 존재하는 개념이다. 말 그대로 변하지 않는 것을 의미하며, 불변 데이터는 한 번 생성되고 나면 그 뒤에는 변할 수 없다. Immutable typeJavaScript에서는 원시 타입(Boolean, String, Number, Null, undefined, Symbol)이 이에 해당된다. 이 값은 메모리영역 내에서 변경이 불가능하며 변수에 할당할 때 완전히 새로운 값이 만들어져 다시 할당된다.let name = 'foo'; let newName = name; name = 'bar'; console.log(newName); // foo console.log(name); // bar위와 같은 상황에서 na..

    원시 자료형과 참조 자료형

    원시 자료형과 참조 자료형원시 자료형 (primitive type data)객체가 아니면서 메서드(method)를 가지지 않는 Boolean, String, Number, Null, undefined, Symbol 이 해당된다. 이 값은 메모리영역 내에서 하나의 값을 담는 스택(stack)에 각각 저장되며, 변수의 이름을 통해 스택에서 호출해 값을 사용 할 수 있다.왜 “원시” 자료형일까?원시 자료형은 모두 하나의 데이터를 담고 있다. 과거에는 데이터 저장소의 용량이 제한되어 변수 하나에 데이터 용량이 제한된 하나의 원시형 자료를 담을 수밖에 없었다. 사진에서 쓰이는 언어는 옛날 컴퓨터에 사용되던 BASIC이라는 컴퓨터 언어이다. string과 number는 쉽게 확인 할 수 있지만 배열에 상응하는 데이..

    객체 지향 프로그래밍

    객체 지향 프로그래밍 (OOP, Object-oriented programming)객체 지향 vs. 절차 지향객체 지향 프로그래밍 기본 개념 (OOP Basic Concepts)Encapsulation (캡슐화)Abstraction (추상화)Inheritance (상속)Polymorphism (다형성)JavaScript가 일반적인 OOP 프로그래밍 언어와 다른 점은닉화의 한계 (private키워드)추상화 기능의 부재 (interface 키워드)메서드 호출클로저를 이용해 매번 새로운 객체 만들기클래스와 인스턴스클래스를 만드는 방법클래스 : 속성의 정의클래스 : 메서드의 정의인스턴스를 만드는 방법속성과 메서드의 차이인스턴스에서 속성과 메서드의 사용실전 예제 : 배열실습 : ES5 방식으로 작성된 클래스와 인..