디자인 패턴 중 Prototype 패턴에 대해 설명합니다. 개념 이미 존재하는 객체를 복사하는 생성패턴입니다. 외부에서 접근할 수 없는 속성이 존재하거나 추가적인 의존성 없이도 외부에서 객체를 복사하고 싶을 때 사용합니다. 다음과 같은 장점이 있습니다. Single Responsibility Principle: 객체 복사 프로세스를 해당 객체에게 위임하여 비즈니스 로직의 과도한 책임을 분산합니다. Dependency Inversion Principle: 구체적인 구현 객체에 의존하지 않고 인터페이스에 의존하여 객체를 복사할 수 있습니다. 객체 생성 시 복잡하거나 고비용의 구성이 필요한 경우 객체 복사로 대체할 수 있습니다. 외부에서 접근이 어려운 속성도 접근하여 복사합니다. 자세히 살펴보겠습니다. Pro..
디자인 패턴 중 Builder 패턴에 대해 설명합니다. 개념 객체 생성 시 많은 파라미터가 존재하거나 생성과정이 복잡한 객체를 step by step으로 생성하는 생성패턴입니다. 다음과 같은 상황이라면 Builder 패턴을 고려할 수 있습니다. 객체 생성시 세부 사항은 다르지만 유사한 단계를 거치는 상황이 반복된다. 복잡한 세부 사항에 따른 객체의 성격을 보장해야 한다. 생성자 내부 코드가 거대해진다. telescoping constructor가 필요하다. 객체 생성 시 유효하지 않은 파라미터 혹은 파라미터 누락으로 인한 잠재적 에러 가능성 존재한다. 다음과 같은 장점이 있습니다. Single Responsibility Principle: 객체 생성에 대한 책임을 분리하여 비즈니스 로직의 과도한 책임을 ..
디자인 패턴 중 Abstract Factory 패턴에 대해 설명합니다. 개념 Abstract Factory 패턴은 같은 제품군에 속하는 연관된 객체들을 생성하는 생성 패턴입니다. 한마디로 N개의 Factory Method가 모여있는 Factory 클래스입니다. 다음과 같은 장점이 있습니다. 특정 제품군에 해당하는 객체의 생성을 보장할 수 있습니다. Single Responsibility Principle: 객체 생성에 대한 책임을 분리하여 비즈니스 로직의 과도한 책임을 분산합니다. Dependency Inversion Principle: 구체적인 구현 객체에 의존하지 않고 인터페이스에 의존합니다. Open-Closed Principle: 객체 생성자 호출을 비즈니스 로직과 분리하여 객체의 타입이 늘어나도..
디자인 패턴 중 Factory Method 패턴에 대해 설명합니다. 개념 Factory Method 패턴은 슈퍼 클래스에서 비즈니스 로직에 사용되는 객체의 객체 생성 인터페이스를 제공하고, 서브 클래스에서 생성할 객체의 타입을 결정하는 생성 패턴입니다. 다음과 같은 장점이 있습니다. Open-Closed Principle: 객체 생성자 호출을 비즈니스 로직과 분리하여 객체의 타입이 늘어나도 비즈니스 로직이 수정될 필요가 없습니다. 클래스 확장을 통해 해결합니다. Single Responsibility Principle: 객체 생성에 대한 책임을 분리하여 비즈니스 로직의 과도한 책임을 분산합니다. Dependency Inversion Principle: 구체적인 구현 객체에 의존하지 않고 인터페이스에 의존..