Design Pattern 3

Facade 잘 설계하기

디자인 패턴을 공부하면서 접하게 되는 Facade 패턴은 이걸 패턴이라고 말하는 게 맞나 싶을 정도로 이해가 쉽고 구조가 단순합니다.그러면서도, 백엔드 웹개발을 하면서 가장 자연스럽게 자주 사용되는 패턴이기도 하는데요.레이어드 기반의 아키텍처에서 서비스 로직을 오케스트레이션하기 위해 애플리케이션 레이어에 패서드를 두는 구조를 종종 볼 수 있습니다.늘 Facade 계층을 두고 개발을 해오면서 관련 자료를 찾아보려고 했지만 여러 글에서는 단순히 Facade 패턴이 어떤 패턴인지에 대한 정보만 전달할 뿐, 이 Facade를 어떻게 잘 설계해야 할까에 대한 고민이나 정리를 글로 드러낸 자료가 없더라고요.자연스럽게, 저의 주관대로 좋은 Facade, 나쁜 Facade를 정의하게 되면서, 저만의 Facade 작성 ..

Design Pattern 2026.05.06

싱글톤 할 바에 Enum

헤드퍼스트 디자인패턴 책을 보는데 5장 싱글톤 부분에 이런 내용이 있더라고요."Enum을 사용하면 싱글톤의 동기화 문제, 클래스 로딩 문제, 리플렉션, 직렬화와 역직렬화 문제를 해결할 수 있다."아무래도 책이 Java 교재가 아니라 디자인패턴 책이다 보니, 저정도의 언급만 있고 구체적인 이유까지는 기술이 안되어있는데요.그래서 궁금함에 제가 알아본 내용을 정리해보겠습니다. 🔍 목차00. Singleton00-1. Singleton이란01. 안티패턴 Singleton01-1. 인스턴스를 언제 만들 것인가01-2. 리플렉션01-3. 직렬화 & 역직렬화02. Enum 싱글톤02-1. Enum은 멀티스레드 인스턴스 생성 문제에서 자유롭다02-2. Enum은 리플렉션에도 강하다02-3. Enum은 직렬화와 역직..

Design Pattern 2026.04.06

전략 패턴 적용기 + 스프링에서 List로 빈 주입하기

1학기때는 한 주에 글 하나씩 작성하는 걸 목표로 했었는데 앞으로 그렇게까지는 못하지 않을까 싶습니다.소소하게 시작한 프로젝트에서 새로 알게 된 내용들을 정리해 놓으면 좋겠다 싶어서 오랜만에 짧은 글 남기게 되었습니다. 🔍 목차# 00. 배경# 01. 전략 패턴# 02. 전략 패턴 적용기# 03. 팩토리와 함께 사용하기 + List로 빈 주입하기 # 00. 배경 동시성 문제를 해결하는 전략이 다양하게 있습니다. 저는 스프링 애플리케이션 분산 네트워크 환경에서 동시성 문제를 유발하고 jvm락, db락, redis 락 등 다양한 방식으로 해결해 보고 여러 메트릭을 측정하거나 장단점을 비교해 보는 소소한 프로젝트를 시작했는데요.처음에는 각 전략에 대해 요청을 받는 핸들러를 전략 별로 두어야겠다 생각을 했습..

Design Pattern 2025.08.07