좋아하는 일 그리고 잘하는 일, 그 사이 어딘가
close
프로필 배경
프로필 로고

좋아하는 일 그리고 잘하는 일, 그 사이 어딘가

  • 분류 전체보기 (277)
    • 회고 (0)
    • Java (64)
      • Java (9)
      • Java 8 (23)
      • Testing (1)
      • Design Pattern with Java (30)
    • Spring (13)
      • Spring (5)
      • 스프링 입문 (8)
    • 리팩토링 (26)
    • Redis (1)
    • C++ (4)
    • C# (11)
    • Unity (3)
      • Unity (3)
    • DB (1)
      • MySQL (1)
    • Data structure (2)
    • Algorithm (143)
      • 감명 깊게 본 코딩 팁 (3)
      • 정렬 (5)
      • 탐색 (10)
      • 동적 프로그래밍(DP) (1)
      • it 취업을 위한 알고리즘 문제 풀이 (20)
      • 프로그래머스 : Level 1 (54)
      • 프로그래머스 : Level 2 (40)
      • 프로그래머스 : SQL (10)
    • IDE (1)
    • 일상 (6)
    • 만화 (0)
    • 게임 (2)
  • 홈
  • 일상
  • 방명록
[구조 패턴] Chapter 10. Facade Pattern

[구조 패턴] Chapter 10. Facade Pattern

퍼사드 패턴, 소개 퍼사드 패턴은 어떤 시스템이나 라이브러리의 복잡한 기능을 클라이언트에게 더 쉽게 제공하기 위한 패턴이다. 클라이언트가 복잡한 서브시스템과 직접적으로 상호작용하는 대신, 간단한 퍼사드 인터페이스와 상호작용하게끔 한다. 이를 통해 클라이언트는 서브시스템의 내부 구조를 알 필요 없이 퍼사드 인터페이스를 통해 간단하게 사용할 수 있다. 여담으로 비침투적인 스프링 프레임워크도 이러한 퍼사드 정신을 가지고 있다고 본다. 퍼사드 패턴, 코드 before OrderProcessor.java, PaymentProcessor.java, InventoryManager.java 주문, 결제, 재고 관리로 이어지는 세 개의 서브시스템 // 서브시스템 1: 주문 처리 class OrderProcessor { ..

  • format_list_bulleted Java/Design Pattern with Java
  • · 2023. 12. 11.
  • textsms
[구조 패턴] Chapter 9. Decorator Pattern

[구조 패턴] Chapter 9. Decorator Pattern

데코레이터 패턴, 소개 데코레이터 패턴은 기존의 객체를 수정하지 않고 새로운 기능을 추가하거나 확장할 수 있게 만드는 패턴으로, 기존 클래스의 구조를 변경하지 않고 런 타임에 부가 기능을 추가하는 장점을 가지고 있다. 데코레이터 패턴은 다음과 같은 상황에 유용하다. 첫째로, 기존의 클래스를 변경하기 어렵고 동시에 새로운 기능이나 행동을 추가해야 할 때 둘째로, 여러 기능을 일련의 순서에 맞게 조합해서 사용해야 하는 경우 유용하다. 정리하면, 데코레이터 패턴의 핵심은 기존의 객체를 변경하지 않고도 새로운 기능을 추 할 수 있다는 점이다. 이는 객체 지향의 개방/폐쇄 원칙을 따르며, 코드의 유지 보수와 확장성을 높일 수 있다. 데코레이터 패턴, 코드 before CommentProcessor.java 단순 ..

  • format_list_bulleted Java/Design Pattern with Java
  • · 2023. 12. 11.
  • textsms
[구조 패턴] Chapter 8. Composite Pattern

[구조 패턴] Chapter 8. Composite Pattern

컴포짓 패턴, 소개 컴포짓 디자인 패턴은 개체들을 트리 구조로 구성하여 개별 객체와 복합 객체를 동일하게 다룰 수 있게 하는 구조 패턴이다. 이 패턴을 적용하면 클라이언트 코드는 개별 객체와 복합 객체를 구분하지 않고 동일한 인터페이스 기반으로 코드를 작성할 수 있도록 한다. 단순히 추상화 시킨다고 생각하면 된다. 다만 컴포짓 패턴이 적용되기 위해선 두 가지 조건이 있다. 첫째로, 단일 객체와 복합 객체를 동일하게 처리해야 하는 니즈가 있을 때 둘째로, 개별 객체와 복합 객체가 트리 구조를 만족해야 한다. 다른 말로 재귀적 구조를 만족해야 한다. 브랫지 패턴, 적용하기 Before Product.java @AllArgsConstructor public class Product { private Strin..

  • format_list_bulleted Java/Design Pattern with Java
  • · 2023. 12. 10.
  • textsms
[구조 패턴] Chapter 7. Bridge Pattern

[구조 패턴] Chapter 7. Bridge Pattern

✍️ 브릿지 패턴, 소개 브릿지 패턴은 하나의 클래스로부터 파생되는 두 가지 개념을 분리하여 각각을 독립적으로 확장하고, 이를 두 개의 컴포넌트로 결합하는 디자인 패턴이다. 이 패턴을 도입하는 대표적인 케이스는 두 가지 다른 속성을 조합하여 하나의 클래스로 표현하는 작업이 반복적으로 발생할 때이다. 브릿지 패턴을 설명하는 대표적인 예시로 도형과 색을 이야기할 수 있다. Shape에서 파생되는 두 가지 개념 도형과 색을 조합하여 하나의 클래스로 표현하다 보면 중복 코드 증가, 코드의 결합도 상승, 기능 수정과 확장에서 문제가 발생한다. 브릿지 패턴은 서로 다른 속성을 클래스로 분리하고, 한 쪽 클래스가 다른 쪽 클래스를 포함하는 컴포지션을 통해 문제를 해결한다. 이 물리적인 클래스 분리로 클라이언트가 직접..

  • format_list_bulleted Java/Design Pattern with Java
  • · 2023. 11. 12.
  • textsms
[구조 패턴] Chapter 6-2. Adapter Pattern : 패턴 적용하기

[구조 패턴] Chapter 6-2. Adapter Pattern : 패턴 적용하기

[구조 패턴] Chapter 6-1. Adapter Pattern : 패턴 소개 코드 설명은 이전 포스팅을 참조 ✍️ 어댑터 패턴, 적용하기 본 포스팅에선 어댑티와 클라이언트의 간극을 어댑터로 메꾸는 코드를 작성해 소개할 생각입니다. 예시 코드에서 클라이언트 코드는 LoginHandler에 해당하고, 클라이언트가 사용하는 UserDetails와 UserDetailsService는 Target interface에 해당한다. public class LoginHandler { private UserDetailsService userDetailsService; public LoginHandler(UserDetailsService userDetailsService){ this.userDetailsService =..

  • format_list_bulleted Java/Design Pattern with Java
  • · 2022. 6. 13.
  • textsms
[구조 패턴] Chapter 6-1. Adapter Pattern : 패턴 소개

[구조 패턴] Chapter 6-1. Adapter Pattern : 패턴 소개

✍️ 어댑터 패턴, 패턴 소개 어댑터 패턴은 일상생활에서도 흔히 찾아볼 수 있는데, 220V 코드를 110V 콘센트에 꽂을 때 흔히 돼지코라고 불리는 어댑터를 사용해 본 경험이 있을 것이다. 바로 이 돼지코가 어댑터 패턴과 유사한 실생활 사례라고 할 수 있다. 이제 소프트웨어적 측면에서 어댑터 패턴을 설명하면, Client가 사용하는 Interface는 정해져있는데 내가 작성한 코드(Adaptee)는 해당 Interface를 따르지 않을 때 Client와 Adaptee 사이의 간극을 Adapter로 메꿔서 Adaptee를 재사용할 수 있도록 하는 패턴이다. 정리하면 '기존 코드를 클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴이다.' 언제나 그렇듯... 말로는 너무 어렵다 코드를 보자. 🍊 어댑..

  • format_list_bulleted Java/Design Pattern with Java
  • · 2022. 6. 4.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • navigate_next
전체 카테고리
  • 분류 전체보기 (277)
    • 회고 (0)
    • Java (64)
      • Java (9)
      • Java 8 (23)
      • Testing (1)
      • Design Pattern with Java (30)
    • Spring (13)
      • Spring (5)
      • 스프링 입문 (8)
    • 리팩토링 (26)
    • Redis (1)
    • C++ (4)
    • C# (11)
    • Unity (3)
      • Unity (3)
    • DB (1)
      • MySQL (1)
    • Data structure (2)
    • Algorithm (143)
      • 감명 깊게 본 코딩 팁 (3)
      • 정렬 (5)
      • 탐색 (10)
      • 동적 프로그래밍(DP) (1)
      • it 취업을 위한 알고리즘 문제 풀이 (20)
      • 프로그래머스 : Level 1 (54)
      • 프로그래머스 : Level 2 (40)
      • 프로그래머스 : SQL (10)
    • IDE (1)
    • 일상 (6)
    • 만화 (0)
    • 게임 (2)
인기 글
최근 글
최근 댓글
태그
  • #코딩
  • #알고
  • #코딩테스트
  • #C++
  • #프로그래머스
  • #알고리즘
  • #BFS
  • #C#
  • #SQL
  • #카카오 기출
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바