본문 바로가기

필수 개발지식/디자인패턴6

[디자인패턴] 프록시패턴과 프록시서버 프록시 패턴(Proxy Pattern)은 소프트웨어 디자인 패턴 중 하나로, 다른 객체에 대한 대리자나 대변자 역할을 하는 객체를 제공하여 그 객체의 기능을 제어하거나 보호하는 패턴입니다. 프록시는 클라이언트와 실제 서브젝트(대상) 사이에서 중재자 역할을 하며, 클라이언트가 실제 서브젝트에 직접 접근하지 않고 프록시를 통해 간접적으로 접근하게 됩니다. 프록시패턴과 프록시서버 프록시패턴(proxy pattern) 대상 객체(subject)에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용 직접 실행 메서드를 호출하는 것을 피하면서 흐름제어를 취함 realSubject : 원래 수행해야.. 2023. 8. 10.
[디자인패턴] 개발자 취업준비생이라면 꼭 알아야할 디자인패턴 디자인 패턴은 소프트웨어 개발에서 반복적으로 발생하는 문제에 대해 일반적이고 재사용 가능한 해결책을 제공하는 설계 원칙들의 모음입니다. 이 디자인 패턴은 보다 구조적이고 유지보수 가능한 코드를 작성하는 데 도움이 됩니다. 디자인 패턴은 크게 생성(Creational), 구조(Structural), 행위(Behavioral) 패턴으로 분류됩니다. 👉생성, 구조, 행위 디자인패턴 예시로 이해하기 0. 디자인패턴의 종류 생성패턴(Creational Patterns), 구조패턴(Structural Patterns), 행위패턴(Behavioral Patterns) 생성패턴 - 팩토리 메서드 패턴, 추상 팩토리 패턴, 빌더 패턴, 싱글톤 패턴, 프로토타입 패턴 구조 패턴 - 어댑터 패턴, 데코레이터 패턴, 컴퍼지트.. 2023. 8. 6.
[Design Pattern] 전략 패턴 (Strategy) ✅행동패턴의 전략 패턴(Strategy Pattern)이란? 전략 패턴은 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴 이다. 즉, 어떤 일을 수행하는 알고리즘이 여러가지 일때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴이다. 네비게이터 앱을 만들어본다고 가정하자! 네비게이터에는 자동차를 위한 길, 걸어갈 길, 대중교통을 이용할 길 등 많은 옵션이 계속 추가될 것이다. 전략패턴(Strategy Pattern)의 구조 전략패턴에선 크게 Context, Strategies 두 가지의 요소가 중요하다. Context : Navigater, Strategies: 여러 옵.. 2023. 5. 23.
[Design Pattern] 메멘토 패턴 (Memento) [Design Pattern] 메멘토 패턴 (Memento) ✅행동패턴의 메멘토(Memento)에 대해 알아보자! 행동패턴(Behavioral Patterns)이란? 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴이다. 한 객체가 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하며 객체 사이의 결합도 최소화에 중점을 둔다. 패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는지에 따라 구분되는 패턴이다. 메멘토(Memento)패턴이란? 메멘토패턴은 객체 내부의 상태를 외부에 저장을 하고 저장된 상태를 다시 복원하고자 할 때에 사용하는 패턴이다. 메멘토패턴을 사용함으로써 객체의 모든 정보를 외부로 노출시키지 않고 캡슐화를 지킬 수 있다. 메멘토 패턴은 세 가지 주요 구성 요소로 구성되는데.. 2023. 5. 15.