반응형 SMALL 전체 글125 [CS] 프록시 패턴 프록시 패턴 프록시패턴이란 객체가 어떤 대상 객체에 접근하기 전, 그 접근에 대한 흐름을 가로채서 해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 디자인패턴 프록시 서버 서버 앞단에 두어 캐싱, 로깅 등에 활용하는 프록시서버가 대표적인 예 function createReactiveObject(target, callback) { const proxy = new Proxy(target, { set(obj, prop, value) { if (value !== obj[prop]) { const prev = obj[prop]; obj[prop] = value; callback(`${prop}가 [${prev}] >> [${value}] 로 변경되었습니다`); } return true; }, });.. 2023. 9. 18. [CS] 옵저버 패턴 옵저버 패턴 옵저버패턴이란 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려 주는 디자인 패턴 트위터의 메인 로직, MVC 패턴에도 적용 import java.util.ArrayList; import java.util.List; interface Subject { public void register(Observer obj); public void unregister(Observer obj); public void notifyObservers(); public Object getUpdate(Observer obj); } interface Observer { public void update(); } class.. 2023. 9. 6. [CS] 전략 패턴 전략 패턴 전략 패턴이란 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 디자인 패턴 import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; interface PaymentStrategy { public void pay(int amount); } class KAKAOCardStrategy implements PaymentStrategy { private String name; private String cardNumber; private String cvv; private String dateOfExpiry; public KAKAOCardStrategy(String.. 2023. 9. 5. [CS] 의존성주입(DI, Dependency Injection)과 의존관계역전원칙(DIP, Dependency Inversion Principle) 의존성주입(DI, Dependency Injection)과 의존관계역전원칙(DIP, Dependency Inversion Principle) 의존성주입(DI, Dependency Injection) 의존성주입(DI, Dependency Injection)이란 메인 모듈(main mudule)이 ‘직접’ 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자(dependency injector)가 이 부분을 가로채 메인 모듈이 ‘간접’적으로 의존성을 주입하는 방식 이를 통해 메인 모듈과 하위 모듈간의 의존성을 조금 더 느슨하게 만들 수 있으며 모듈을 쉽게 교체 가능한 구조로 만듬 '의존한다' 라는 의미 A가 B에 의존한다. == B가 변하면 A에 영향을 미치는 관계 == A → B 를 의미 (B가.. 2023. 9. 3. [CS] 이터레이터 패턴 이터레이터 패턴? 이터레이터패턴은 이터레이터(iterator)를 사용하여 컨테이너의 요소들에 접근하는 디자인 패턴 컨테이너란 동일한 요소들을 담아놓는 집합 → 배열, 맵 등이 있음 장점 각기 다른 자료구조들을 똑같은 인터페이스로 순회를 쉽게 할 수 있음 이터레이터 패턴은 컬렉션과 순회 로직을 분리함으로써 코드의 유연성, 재사용성, 유지보수성을 개선하며, 다양한 컬렉션을 일관된 방식으로 다룰 수 있는 강력한 디자인 패턴 js const mp = new Map() mp.set('a', 1); mp.set('b', 2); mp.set('cccc', 3); const st = new Set() st.add(1); st.add(2); st.add(3); const a = [] for (let i = 0; i < .. 2023. 9. 2. [CS] 팩토리 패턴 팩토리 패턴? 팩토리 패턴이란 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 장점 상위 클래스에서는 객체 생성방식에 대해 알 필요가 없어져 유연성을 가짐 객체 생성 로직은 하위 클래스에서만 관리 되기 때문에 유지 보수성이 증가됨 상위 클래스와 하위 클래스가 분리되기 때문에 로직 관리하기가 편함 js // 상위 클래스 class CoffeeFactory { // static - 정적메서드 static createCoffee(type) { const factory = factoryList[type] return factory.createCoffee() } } class Latte { constructor() { this.. 2023. 9. 1. 이전 1 ··· 3 4 5 6 7 8 9 ··· 21 다음 반응형 LIST