본문 바로가기

프로그래밍 강의 메모

(42)
행동 관련 디자인 패턴 > 중재자 패턴(Mediator Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 중재자 패턴 행동 관련 디자인 패턴. 여러 객체들이 소통하는 방법을 캡슐화하는 패턴. 여러 컴포넌트 간의 결합도를 중재자를 통해 낮출 수 있다. 여러 컴포넌트들이 있고 각각의 컴포넌트들이 서로 직접 의사소통을 하고 있다고 가정한다면, 각각의 컴포넌트들이 강하게 결합하게 된다. 이럴경우 코드 구현, 변경, 테스트, 재사용하기 모두 어렵다. 모든 Colleague들은 Mediator 인터페이스를 참조..
행동 관련 디자인 패턴 > 이터레이터 패턴(Iterator Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 이터레이터 패턴 행동 관련 디자인 패턴. 집합 객체 내부 구조를 노출시키지 않고 순회하는 방법을 제공하는 패턴. 집합 객체를 순회하는 클라이언트 코드를 변경하지 않고 다양한 순회 방법을 제공할 수 있다. Iterator라는 인터페이스가 있고 클라이언트가 어떻게 순회할지 방법을 갖고 있다. ConcreteIterator는 이 인터페이스를 실체화하고 구체적인 순회 로직이 들어가 있다. 이터레이터 패턴..
행동 관련 디자인 패턴 > 인터프리터 패턴(Interpreter Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 인터프리터 패턴 행동 관련 디자인 패턴. 자주 등장하는 문제를 간단한 언어로 정의하고 재사용하는 패턴. 반복되는 문제 패턴을 언어 또는 문법으로 정의하고 확장할 수 있다. 정규 표현식이 이 패턴으로 구현되었다. Context는 모든 Expression에서 사용하는 공통된 정보가 들어가 있다. 글로벌한 값들이 모여있는 곳이다. Expression에서 이 값들을 참조한다. TerminalExpress..
행동 관련 디자인 패턴 > 커맨드 패턴(Command Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 커맨드 패턴 행동 관련 디자인 패턴. 요청을 캡슐화 하여 호출자 Invoker와 수신자 Receiver를 분리하는 패턴. 요청을 처리하는 방법이 바뀌더라도, 호출자의 코드는 변경되지 않는다. 커맨드라는 객체를 사용하여 호출자와 수신자를 분리시킨다. 이 패턴이 필요한 상황 코드의 변경이 자주 일어나고 요청을 보내는 쪽에서 비슷한 코드가 중복되는 경우. 이러한 현상은 호출자와 수신자 간의 관계가 타이..
행동 관련 디자인 패턴 > 책임 연쇄 패턴(Chain of Responsibility Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 책임 연쇄 패턴 행동 관련 디자인 패턴. 요청을 보내는 쪽과 요청을 처리하는 쪽을 분리하는 패턴. 핸들러 체인을 사용하여 요청을 처리한다. 특정한 책임을 가진 클래스들이 연결되어있는 구조로 무언가를 처리하는 것. 요청을 보내는 쪽과 처리하는 쪽을 분리한다. 요청을 보내는 쪽에서 그 요청을 처리하는 핸들러가 어떤 구체적인 타입인지 상관없이, 디커플링된 상태에서 요청을 처리할 수 있게 만들어주는 패턴..
구조 관련 디자인 패턴 > 프록시 패턴(Proxy Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 프록시 패턴 구조 관련 디자인 패턴. 특정 객체에 대한 접근을 제어하거나 기능을 추가할 수 있는 패턴. 초기화 지연, 접근 제어, 로깅, 캐싱 등 다양하게 응용해 사용할 수 있다. 특정한 객체의 오퍼레이션들을 접근하기 전에 프록시 객체를 먼저 지나서 접근하게 된다. 프록시는 사전적인 의미로 대리, 대리인이라는 뜻이 있어서 클라이언트가 원래 사용하려는 객체를 직접 사용하는 것이 아니라 대리인을 거쳐..
구조 관련 디자인 패턴 > 플라이웨이트 패턴(Flyweight Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 플라이웨이트 패턴 구조 관련 디자인 패턴. 객체를 가볍게 만들어 메모리 사용을 줄이는 패턴. 외적인 속성 즉 자주 변하는 속성과 내적인 속성 즉 변하지 않는 속성을 분리하고 재사용하여 메모리 사용을 줄일 수 있다. 많은 인스턴스를 생성하는 프로그램의 경우 많은 메모리를 사용하게 된다. 메모리 낭비를 줄이기 위해 공통되는 부분을 따로 모아서 재사용하는 패턴이다. 잘 변하지 않는 속성을 따로 모아서 ..
구조 관련 디자인 패턴 > 퍼사드 패턴(Facade Pattern) https://inf.run/6Shr 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 퍼사드 패턴 구조 관련 디자인 패턴. 복잡한 서드 시스템 의존성을 최소화 하는 방법. 클라이언트가 사용해야 하는 복잡한 서브 시스템 의존성을 간단한 인터페이스로 추상화할 수 있다. 퍼사드로 내부 디테일한 로직을 숨기고 있다. 느슨하게 결합한 구조를 지향하는 패턴이다. 패턴 적용하기 클라이언트가 갖고 있는 의존성을 퍼사드로 옮기는 것 뿐인 조삼모사 구조가 아닌가? 위와 같은 의문을 갖을 수 있다. ..