싱글턴 패턴이란? 싱글턴 패턴은 객체지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 애플리케이션에서 특정 클래스의 인스턴스가 단 하나만 생성되도록 보장하는 패턴이다. 즉, 해당 클래스의 인스턴스가 오직 하나뿐이며, 어디서든지 그 인스턴스에 접근하여 사용할 수 있도록 만들어 준다. 싱글턴 패턴을 사용하는 이유는 다음과 같다. 자원 공유: 여러 객체에서 하나의 인스턴스를 공유하여 사용할 수 있다. 이를 통해 자원을 효율적으로 사용할 수 있다. 객체의 생성 비용 최소화: 인스턴스가 한 번 생성된 이후에는 다시 생성하지 않기 때문에, 객체 생성 비용이 큰 경우에 사용하면 효율적이다. 인스턴스의 수 제한: 클래스의 인스턴스가 하나뿐이기 때문에, 불필요한 인스턴스 생성을 방지할 수 있다. 싱글톤 패턴을 구현하..
전략 패턴이란? 전략 패턴은 정책 패턴이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔 주면서 상호 교체가 가능하게 만드는 패턴이다. 이 패턴은 알고리즘을 독립적인 클래스로 정의하고, 클라이언트에서는 알고리즘 클래스를 인터페이스를 톨해 사용한다. 이렇게 함으로써 클라이언트는 알고리즘의 구체적인 구현과 분리되어 유연성과 확장성을 높일 수 있다. 클라이언트는 실행 시간에 다른 알고리즘 클래스를 선택하여 사용할 수 있으며, 이를 통해 동일한 인터페이스를 가진 다양한 알고리즘을 적용할 수 있다. 전략 패턴은 다음과 같은 장점이 있다. 유연성: 알고리즘을 캡슐화하고 교체 가능하게 함으로써, 실행 시간에 알고리즘을 변경할 수 있다. 확장성..
팩토리 패턴이란? 팩토리 패턴(Factory Pattern)은 객체를 생성할 때 사용되는 디자인 패턴이다. 이 패턴은 객체 생성을 캡슐화하고, 클라이언트 코드와 객체 생성 코드를 분리함으로써 유연성과 확장성을 제공한다. 일반적으로 팩토리 패턴은 추상화된 인터페이스를 정의하고, 이를 구현하는 여러개의 팩토리 클래스를 만들어 사용한다. 클라이언트는 팩토리 인터페이스를 통해 객체를 생성하고 반환받을 수 있다. 팩토리 클래스는 객체 생성에 대한 로직을 구현하고, 실제 객체의 인스턴스를 생성하여 반환한다. 간단하게 말하자만 객체를 생성하는 부분을 Sub Class에 맡긴다고 생각하면 된다. 팩토리 패턴은 다음과 같은 장점이 있다. 객체의 생성을 중앙집중화해 코드의 유지보수성과 확장성을 향상시킨다. 구체적인 구현클..
어댑터 패턴이란? 어댑터 패턴(Adapter pattern)은 소프트웨어 공학에서 사용되는 디자인 패턴 중 하나로, 기존의 클래스를 새로운 인터페이스에 맞게 변환하여 재사용할 수 있도록 해주는 패턴이다. 어떤 클래스나 객체를 다른 클래스나 객체에서 사용하려면, 그것들이 호환되는 인터페이스를 가져야 한다. 하지만 기존에 존재하는 클래스나 객체가 원하는 인터페이스를 갖추고 있지 않을 경우에는, 새로운 클래스나 객체를 만들거나, 기존 클래스나 객체를 수정해야 하는 경우가 있다. 이때 어댑터 패턴을 사용하면, 기존 클래스나 객체를 수정하지 않고도 새로운 인터페이스를 제공할 수 있다. 어댑터 패턴은 크게 두 가지 종류가 있다. 클래스 어댑터 패턴과 객체 어댑터 패턴이다. 클래스 어댑터 패턴은 기존 클래스를 상속받..
SOLID (객체지향 설계 원칙) SOLID 원칙은 다음과 같은 다섯 가지 원칙의 앞글자를 따서 이름이 지어졌다. Single Responsibility Principle (SRP) - 단일 책임 원칙 Open-Closed Principle (OCP) - 개방-폐쇄 원칙 Liskov Substitution Principle (LSP) - 리스코프 치환 원칙 Interface Segregation Principle (ISP) - 인터페이스 분리 원칙 Dependency Inversion Principle (DIP) - 의존 역전 원칙 이 원칙들은 객체지향 설계를 할 때, 좀 더 유연하고 유지보수하기 쉬운 코드를 작성하기 위해 고안된 원칙들이다. 각각의 원칙은 아래와 같이 설명된다. 단일 책임 원칙(SRP)..