코드 스피츠/코드스피츠 86-객체지향 자바스크립트(4)
-
86 객체지향 자바스크립트-5회차
86-5 코드스피츠 86 객체지향 자바스크립트 - 5회차 지난 3번째 강의에서 우리는 Binder의 도메인 전략을 외부로 위임하기 위한 Processor라는 전략 객체를 만들었었다. 이를 통해 우리는 실제 도메인에서 수행할 전략에 대한 코드는 남김없이 Binder에서 제거할 수 있었다. 그런데 현재 우리의 ViewModel의 생성자를 보자. class ViewModel extends ViewModelSubject{ constructor(checker, data, _=type(data, "object")) { if (checker != ViewModel.#private) throw 'use Viewmodel.get()'; super(); Object.entries(data).forEach(([cat,obj..
2022.03.06 -
86 객체지향 자바스크립트-4회차
86-4 코드스피츠 86 객체지향 자바스크립트 - 4회차 💡 객체지향 프로그래밍은 이루고자 하는 목표에서 부터 덩어리진 코드를 클래스로 분리하고 깎아내는 과정이라고 할 수 있다. 이 때 어떻게 깎아낼 것인지를 정하는 기준은 역할, 책임이다 객체지향에서는 역할과 책임을 한꺼번에 정의한다. 인터페이스 분리 원칙(ISP)에 따라 하나의 코드에 여러가지 역할이 중첩되어 있다면 역할 별로 코드를 분리할 수 있다. 현재 우리는 매우 헤비한 ViewModel 코드를 가지고 있다. 이를 역할 별로 분리할 수 없을까? 그럼 우선 분리할 수 있는 인터페이스를 찾아보자. const ViewModel = class { static #private = Symbol() styles={}; attributes={}; propert..
2022.03.06 -
86 객체지향 자바스크립트-3회차
86-3 https://www.youtube.com/watch?v=D450fPGffTg 저번 시간에는 모델의 변화를 수동으로 Binder를 호출하여 렌더링했었다. 그렇다면 자동으로 모델의 변화를 감지하여 Binder가 호출될 수 있게 하려면? Observer 패턴을 이용해야 한다. 이번 강의에선 Observer 패턴과 함께 전략 패턴 Strategy Pattern을 알아볼 것이다. 전략 패턴Strategy Pattern 전략패턴에서 전략이란 Strategy를 직역한 잘못 번역된 언어에 가깝다. Strategy는 범용적으로 문제를 해결하기 위한 도메인 또는 지식을 가리킨다. 어떠한 문제를 추상적진 개념에서 범용적으로 정의할 수 있다면 지식/ 도메인 부분만 변경하면 문제를 처리할 수 있다는 개념이다. 개념적..
2022.03.06 -
86 객체지향 자바스크립트-2회차
86-2 들어가기 앞서... 이 글은 코드 스피츠 유튜브에 공개된 무료강의인 86-객체지향 자바스크립트를 회차별로 정리한 글입니다. 이 강의는 객체지향을 해보았거나, 해보지 않았더라도 자바스크립트 개발에 익숙한 사람들을 대상으로 합니다. 객체지향의 기본적인 개념에 관한 간단한 소개는 1회차에서 다루지만, 강의 음질이 1회차만 좋지 않아 정리를 못한 관계로 실제 코드를 살펴보는 2회차부터 강의를 정리하여 글을 쓰게 되었습니다. 차후 1회차를 정리하게 되면 업로드하도록 하겠습니다. 코드스피츠 86 객체지향 자바스크립트 - 1회차 코드스피츠 86 객체지향 자바스크립트 - 2회차 이번 강의에서 만들어볼 모델은 MVVM이라는 아키텍쳐의 핵심적인 부분을 차용한 간단한 모델로, 이를 어떻게 객체지향으로 만들 수 있는..
2022.03.06