전체 글

전체 글

    자바스크립트의 undefined, null에 대해 알아보자.

    자바스크립트의 undefined, null에 대해 알아보자.

    자바스크립트 데이터의 원시값에는 7가지가 있다. String, Number, Boolean, undefined, null, Symbol, BigInt가 그러하다. undefined, null이 각각 원시 자료형임을 이해하는 것이 우선이다. 이 포스팅에서는 undefined, null은 무엇이며 언제 undefined와 null을 볼 수 있는지 그래서 '개발자가 변수에 직접 이 값을 할당해도 되는지?'에 대한 내용에 대해 다뤄볼 예정이다. undefined undefined가 무엇이고, undefined가 어떤 상황에서 이용되는지 알아보자. undefined는 '정의되지 않은' 이라는 의미이다. 자바스크립트에서 정의란, 변수에 값을 할당해서 변수를 명확히 하는 것을 의미한다. 변수에 값을 할당하기 위해선 ..

    발행-구독 패턴(Publisher-Subscriber Pattern)이란?

    발행-구독 패턴(Publisher-Subscriber Pattern)이란?

    이전 글 옵저버 패턴(Observer Pattern)이란? 옵저버 패턴 옵저버 패턴은, 옵저버들의 목록을 객체(관찰하려는 대상)에 등록하여 객체가 상태 변화가 있을 때 마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버들에게 통지하는 디자인 패 gobae.tistory.com 옵저버 패턴에 대해서 정리한 포스팅. 이번에는 발행구독 패턴에 대해 알아보자. 발행구독 패턴 발행구독 패턴은, 비동기 메시징 패러다임이다. 발행자와 구독자가 있고, 그 사이에 브로커(=메시지 큐)가 존재하는 형태이다. 이것의 특징을 요약하면, 1. 발행자 메시지의 수신자가 정해져 있지 않다. 2. 메시지는 정해진 범주에 따라서 구독을 신청한 수신자에게 전달이 된다. 3. 수신자는 발행자에 대한 정보 없이, 원하는 메시지를 수신할 ..

    옵저버 패턴(Observer Pattern)이란?

    옵저버 패턴(Observer Pattern)이란?

    옵저버 패턴 옵저버 패턴은, 옵저버들의 목록을 객체(관찰하려는 대상)에 등록하여 객체가 상태 변화가 있을 때 마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버들에게 통지하는 디자인 패턴이다. Observer(관찰자) 상태 변화를 감지하는 대상이다. 옵저버에는 함수나 객체 모두 등록이 가능하다. Obervable(객체) 상태가 변경되는 대상이다. subscribe, unsubscribe, notify 등 행동을 처리하는 메서드를 보유하고 있어야 한다. 옵저버 패턴의 핵심은 의존성을 낮추는 것(결합도를 낮추는 것)이다. 옵저버 패턴 구현을 위한 필수사항은 무엇인가? 1. 구독방법을 포함해야 한다. 2. 구독리스트를 담아야 한다. 3. 이벤트 발행하는 방법을 포함해야 한다. 그림을 통해 옵저버 패턴 알아보..

    자바스크립트 클래스란?

    자바스크립트 클래스란?

    클래스, 객체, 인스턴스 클래스는 객체를 만들어내기 위한 설계도 혹은 틀이며, 연관되어 있는 변수와 메서드의 집합이다. 클래스는 객체 정의를 위한 상태(멤버변수)와 메서드(함수)로 구성된다. 클래스와 객체, 인스턴스 간 연관을 짧게 설명하자면 객체 소프트웨어 세계에서 구현할 대상으로, 클래스에 선언된 형태 그대로 생성된 실체이다. 인스턴스 클래스(설계도)로부터 구현된 구체적인 실체를 의미하며 클래스로부터 객체를 생성했다면, 그것을 인스턴스라고 부른다. 예를 들어, Person 클래스라면 Person 클래스로 구현한 Tom은 인스턴스이다. 객체와 인스턴스의 관계는 다음과 같다. 1. 인스턴스는 객체에 포함된다. 2. oop 관점에서, 객체가 메모리에 할당되어 실제로 사용되면 "인스턴스" 라고 한다. 3. ..

    객체 프로퍼티의 getter와 setter

    객체 프로퍼티의 getter와 setter

    객체 프로퍼티의 종류 객체 프로퍼티는 데이터 프로퍼티, 접근자 프로퍼티로 나뉜다. 데이터 프로퍼티(Data Property) key:value 형태의 값에 문자열, 숫자, 함수, 객체, 배열 등등의 값이 들어간 모든 프로퍼티를 의미한다. 접근자 프로퍼티(Accessor Property) 접근자 프로퍼티는 함수이며, get과 set의 역할을 한다. 그러나, 외부에서 해당 객체를 사용할 때 접근자 프로퍼티를 일반 프로퍼티처럼 사용할 수 있다. Getter & Setter 접근자 프로퍼티는 getter, setter 메서드로 표현될 수 있다. 그리고 객체에서 getter, setter는 각각 get, set으로 나타낼 수 있다. getter 메서드는 객체 프로퍼티를 가져오는 함수이며, setter 메서드는 객..

    객체 프로퍼티 플래그와 설명자(Flag & Descriptor)

    객체 프로퍼티 플래그와 설명자(Flag & Descriptor)

    객체 프로퍼티란? 객체에서는 key:value 쌍으로 프로퍼티가 저장되며 각각을 key : 프로퍼티 이름, value : 프로퍼티 값 으로도 부른다. 그러므로, key:value의 한 쌍을 프로퍼티라고 생각하면 되겠다. 이 포스팅에선 객체 프로퍼티의 특수한 옵션인 플래그(Flag)와 설명자(Descrpitor)라는 강력한 기능을 알아본다. 프로퍼티 플래그 프로퍼티 플래그는 writable, enumarable, configurable의 3가지 속성으로 구성된다. 각각의 개념은 다음과 같다. writable 값 수정 가능성. true일 시 값을 수정할 수 있으며, false일 때는 읽기만 가능하다. enumerable 나열 가능성 ture일 시 반복문 등을 통해 나열이 가능하며, false일 때는 나열이 ..