📌 브릿지 패턴(Bridge Pattern)이란? 구현과 추상화를 분리하여 각각 독립적으로 확장, 변형할 수 있게 하는 패턴이다. 추상적 개념과 구체적 구현을 서로 다른 두 개의 인터페이스로 구현한다. 특히 인터페이스와 구현을 분리함으로써 시스템의 유연성을 향상시킬 수 있다. 예를 들어 Circle(원) 및 Square(정사각형)라는 한 쌍의 자식 클래스들이 있는 Shape(모양) 클래스가 있다고 가정했을 때, 이 클래스의 계층 구조를 확장하여 색상을 도입하기 위해 Red, Blue 모양들을 자식 클래스에 만든다고 한다면 BlueCircle, RedSquare 등 새로운 모양 유형들과 색상 유형들을 추가할 때마다 계층 구조는 기하급수적으로 늘어난다. 위의 예시에서는 모양과 색상 두 가지 독립적인 차원에서..
📌 어댑터 패턴(Adapter Pattern)이란? 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 동작하도록 해주는 패턴이다. 기존에 있는 시스템에 새로운 써드파티 라이브러리가 추가된다던지, 레거시 인터페이스를 새로운 인터페이스로 교체하는 경우에 코드의 재사용성을 높일 수 있는 패턴이다. 해외여행을 다닐 때 각 국가의 표준전압이 달라 충전기 앞에 흔히 말하는 돼지코(110V 변환)를 사용한 경험이 있을 것이다. 이는 220V를 사용하는 대한민국 충전기의 인터페이스를 외국의 표준전압으로 변환하여 작동시키게끔 하는 어댑터이다. 즉, 어댑터란 이미 구축되어 있는 것을 새로운 어떤 것에 사용할 때 양 쪽 간의 호환성을 유지해 주기 위해 사용하는 것으로 기존 시스템에서 새로운 업체에서 제공..
📌 구조 패턴(Structural Pattern) 이란? 클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴이다. 클래스와 객체 간의 관계를 강화하거나 변경하고, 더 큰 구조를 통해 시스템의 유연성화 효율성을 증가시키는 데 사용된다. 주로 상속이나 인터페이스를 활용하여 객체들 간의 관계를 조직화한다. 📌 구조 패턴의 특징 서로 독립적으로 개발한 클래스 라이브러리를 마치 하나인 것처럼 사용할 수 있다. 여러 인터페이스를 합성하여 서로 다른 인터페이스들의 통일된 추상을 제공한다. 인터페이스나 구현을 복합하는 것이 아니라 객체를 합성하는 방법을 제공한다. 📌 구조 패턴의 종류 [ 어댑터 패턴 (Adapter Pattern) ] 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록 타 클래스의 인터페이스..