❓빌더 패턴이 무엇일까? 빌더 패턴은 복합 객체 생성 과정을 별도의 독립된 클래스로 관리하는 패턴을 말합니다. 쉽게 말해 build라는 클래스 하나로 생성을 모두 관리할 수 있다는 건데요. 그렇다면 복합 객체, 복잡한 객체란 무엇을 뜻하는 것일까요? ❓복합 객체? 복합 객체는 내부적으로 다른 클래스의 객체를 포함하고 있는 것을 말합니다. // Door 클래스 정의 class Door { operate(action) { console.log(`The door is ${action}.`); } } // Car 클래스 정의 class Car { constructor(model, year) { this.model = model; this.year = year; this.doors = []; } addDoor(c..
우아한 테크코스 프리코스 4주차를 시작하면서, “서비스의 핵심을 파악하고, 이를 우선 구현해 봐라”는 피드백을 받았습니다. 사실 지금까지 TDD에 대해서 배운바, 도메인 로직의 테스트 코드를 구성하고 나서, 실제 코드를 만드는 것에 익숙해져 있었습니다. 그런데 갑자기 “핵심 로직을 우선 구현하라”…? 사실 의아한 부분이 많았습니다. 지금까지 주구장창 도메인 로직의 구성부터 생각하며 빌드를 해왔는데… 음.. TDD와는 다른 어떠한 방법론에 대한 이야기라고 생각 들었습니다. 이게 단순히 ‘설계를 꼼꼼히 하라, 그리고 TDD 구현을 시작하라’ 라는 의미라면, 지금까지 잘 해왔다고 생각했지만, 분명 TDD의 단점은 원하는 서비스를 빠르게 만들진 못한다는 생산성의 문제가 있었기 때문에, 이를 개선해 나가야 할 방..
❓추상 팩토리 패턴? 추상 팩토리 패턴은, 팩토리 메서드 패턴에서 한 층 더 나아가, 팩토리 그룹, 객체 패밀리 (object families)를 만들어 확장해 나가는 패턴을 말합니다. 팩토리 매서드에 대한 글은 아래를 참고해주세요! [디자인 패턴] 팩토리 메서드(Factory Method) 패턴 ❓팩토리 메서드 패턴? 팩토리 메서드 패턴은 팩토리 패턴에서 확장된 패턴이라 생각하시면 됩니다. 기존 팩토리 패턴은 객체의 생성을 처리하는 동작을 클래스 혹은 메서드로 분리하는 것을 lurgi.tistory.com 제가 이해한 바로는, 쉽게 말해서 여러개의 추상 팩토리를 가진 그룹을 만드는 패턴을 추상 팩토리라 할 수 있을 것 같습니다. ❓추상 팩토리 패턴의 예 다이어그램을 통해 알아봅시다. 다양한 추상 팩토리..
❓팩토리 메서드 패턴? 팩토리 메서드 패턴은 팩토리 패턴에서 확장된 패턴이라 생각하시면 됩니다. 기존 팩토리 패턴은 객체의 생성을 처리하는 동작을 클래스 혹은 메서드로 분리하는 것을 말하는데요, 여기서 한 발 더 나아가 팩토리 메서드 패턴은 ‘서브 클래스’ 에서 구현하는 패턴을 말합니다. 팩토리 패턴은 여기서 자세하게 보실 수 있습니다! [디자인 패턴] 팩토리(Factory) 패턴 ❓팩토리 패턴 팩토리 패턴은 생성 패턴중에서도 가장 기본이 되는 패턴이라고 합니다. 객체 생성 처리를 위임하여 객체 지향의 문제점을 해결할 수 있다고 하네요. 객체 생성을 담당하는 동작 lurgi.tistory.com ❗팩토리 메서드의 예시 (JS) // 추상 동물 클래스 (인터페이스로 간주) class Animal { mak..
❓싱글턴 패턴? 싱글턴 패턴은 클래스의 인스턴스를 딱 하나로 고정시켜 놓도록 보장하는 패턴을 말합니다. 특정 클래스의 인스턴스가 오직 하나만 생성되기 때문에, 어디서든 그 인스턴스에 접근하더라도 하나의 인스턴스가 목적지가 됩니다. 싱글턴 패턴은 리소스 공유나 설정관리, 캐싱, 로그 새성과 같은 전역 상태를 가져야 하는 상황에서 사용되는 패턴입니다. 단일 인스턴스를 공유함으로써 리소스 낭비를 줄일 수 있고 일관된 상태를 유지할 수 있다는 것이죠! ❗싱글턴 패턴의 예시 (JS) 싱글턴 패턴의 예시를 자바스크립트 코드 보여드리겠습니다. class Singleton { constructor() { if (!Singleton.instance) { Singleton.instance = this; } return S..
❓팩토리 패턴 팩토리 패턴은 생성 패턴중에서도 가장 기본이 되는 패턴이라고 합니다. 객체 생성 처리를 위임하여 객체 지향의 문제점을 해결할 수 있다고 하네요. 객체 생성을 담당하는 동작을 별도의 클래스 혹은 별도의 메서드로 분리하여 객체의 생성 동작을 위임하는 것을 말합니다. 즉 객체의 생성을 캡슐화 한다는 것! ❓팩토리 패턴의 장점 팩토피 패턴은 객체 지향의 문제점을 해결해 준다고 할 수 있습니다. new 연산자를 사용해 직접 객체를 생성하는 것은 ‘강력한 결합’을 만들어 낼 수 있습니다. 팩토리 패턴을 통해 ‘느슨한 결합’으로 만들어 의존성을 떨어뜨릴 수 있다는 것입니다. ❗팩토리 패턴의 예시 (JS) class Korean { greeting () { return "안녕하세요" } } class A..