본문 바로가기

야미스터디/Design pattern5

[디자인 패턴] 프록시 패턴 📌 프록시 패턴 (Proxy Pattern) 프록시(Proxy) : 대리자, 대변인 / 누군가를 대신해서 그 역할을 수행한다 즉, 프록시에게 어떤 일을 대신 시키는 것이다 어떤 객체를 사용하고자 할 때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대항하는 객체를 통해 대상 객체에 접근하는 방식이다 이를 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 필요한 시점까지 객체의 생성을 미룰 수 있다 스프링 AOP의 공통의 기능을 구현할 때 프록시 패턴을 이용하기도 한다 프록시 패턴의 장점 메모리 사용량이 큰 객체가 로딩되기 전에 프록시를 통해 참조가 가능하다 실제 객체의 public, protected 메소드를 숨기고 인터페이스를 통해 노출시킬.. 2022. 10. 5.
[디자인 패턴] 퍼사드 패턴 📌 🖐 구조 패턴 (Structural Pattern) 작은 클래스들의 상속과 함성을 통해 더 큰 클래스를 생성하는 방법을 제공하는 패턴 독립적으로 개발할 클래스들을 마치 하나인 것처럼 사용할 수 있다 구조 패턴 종류 적응자 패턴 (Adapter Pattern) 가교 패턴 (Bridge Pattern) 복합체 패턴 (Composite Pattern) 장식자 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이급 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 퍼사드 패턴 (Facade Pattern) 구조 패턴(Structural Pattern)의 한 종류로, 서브 시스템들의 공통적인 기능을 정의하는 단순화된 상위 수준의 인터페이스를 정.. 2022. 10. 4.
[디자인 패턴] 상태 패턴 (State Pattern) 📌 🖐 들어가기 전에 상태(현재 진행중인 행위)를 나타내기 위해 어떤 방식을 사용했을까? Enum (열거형) Enum이란 서로 연관된 상수들의 집합니다 상태를 나타내기에는 편리한 방식이기 때문에 많이 사용된다 그러나 Enum은 객체 지향적인 프로그래밍이라고 하기에는 애매한 부분이 있다😥 Enum의 단점 enum 하나로 모든 상태를 관리하는 것은 편리하나, 메서드를 실행하기 위해서 많은 분기가 생긴다 만약 Enum 값을 기준으로 분기문을 사용할 때, 상태가 계속해서 추가되거나 기능의 수정이 발생하는 경우에는 OCP원칙을 준수하지 못한다 상태가 많아질수록 복잡해지는 조건문이 여러 코드에서 중복해서 출현하고 그만큼 코드 변경을 어렵게 만든다! 상태 패턴 (State Pattern) 객체 자신의 내부 상태에 따라 .. 2022. 8. 24.
[디자인 패턴] 싱글톤 패턴 📌 객체 객체 : 속성과 기능을 갖춘 것 클래스 : 속성과 기능을 정의한 것 인스턴스 : 속성과 기능을 가진 것 중 실제 하는 것 싱글톤 패턴 (Singleton Pattern) 객체의 인스턴스가 오직 1개만 생성되는 패턴 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static), 그 메모리에 인스턴스를 만들어 사용한다 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환한다 즉, 인스턴스가 필요할 때 똑같은 인스턴스를 만들지 않고, 기존 인스턴스를 사용하게 하는 디자인 패턴이다 단, 싱글톤 인스턴스를 생성할 때에는 동시성(Concurrency) 문제를 고려해서 설계해야 한다 싱글톤 패턴 구현 다음은 싱글톤 .. 2022. 8. 21.
[디자인 패턴] 디자인 패턴이란? 디자인 패턴 (Design Pattern) Don't reinvent the wheel 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 해결책 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 의미이다 💡 패턴이란? - 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있는데, 이러한 유사점을 패턴이라고 한다 - 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다 디자인 패턴 구조 1. 콘텍스트(context) 문제가 발생하는 여러 상황을 기술한다 즉, 패턴이 적용될 수 .. 2022. 8. 21.