디자인 패턴

    이터레이터 패턴

    이터레이터 패턴

    💡 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴 장점 : 각기 다른 컬렉션들을 똑같은 인터페이스로 순회가 쉽다. 예 : 자바스크립트의 인터페이스 (for of) 순회할 수 있는 각기 다른 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회가 가능해서 코드의 효율화, 숫자형 index가 아닌 string 등 다양한 인덱스를 기반으로 순회를 쉽게 할 수 있다. *컬렉션 : 컨테이너라고도 하고, 동일한 요소들의 집합을 말함. 배열, 트리 등을 지칭 *이터레이터 프로토콜 : 이터러블한 객체들을 순회할 때 쓰이는 규칙 *이터러블한 객체 : 반복 가능한 객체로 배열을 일반화한 객체 const mp = new Map() mp.set('a', 1) mp.set('b', 2) mp.set(..

    팩토리 패턴

    팩토리 패턴

    💡 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 상위 클래스 : 중요한 뼈대만 작성 하위 클래스 : 구체적인 내용 - 상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가짐 - 코드 리팩토링을 하더라도 한 곳만 고치면 된다. - 유지 보수성 증가 ↑

    싱글톤 패턴

    싱글톤 패턴

    💡 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 인스턴스를 기반으로 해당 인스턴스를 다른 모듈들이 공유 데이터베이스 연결모듈에 많이 쓰임. 장점 : 인스턴스 생성할 때 드는 비용이 줄어듬 단점 : 의존성이 높아지고, TDD에 단점 해결 : 의존성 주입으로 간접적으로 의존성을 주입하여 모듈간의 결합을 느슨하게 만듬 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만 그렇게 하지 않고 하나의 클래스기반으로 단 하나의 인스턴스를 만드는 일반적이다. 데이터베이스 연결모듈에 많이 쓰인다. 싱글톤이 아닌 클래스 class Rectangle { constructor(height, width) { this.height = height..