테스트가능한설계 2

싱글턴과 DI 컨테이너 구조

1. 싱글턴 패턴의 본질과 한계1-1. 싱글턴은 왜 등장했을까? 객체지향 설계에서 싱글턴(Singleton)은 "클래스의 인스턴스를 단 하나만 생성하고, 어디서든 접근할 수 있도록 하는 패턴"이다. 이 패턴은 주로 다음 두 가지 상황에서 유용하다.애플리케이션 전체에서 공유 자원이 필요할 때하나의 인스턴스만 있어야 일관성을 유지할 수 있는 경우 예를 들어, 로그 기록기(Logger), 설정 객체(Config), DB 커넥션 풀(Connection Pool)처럼 애플리케이션 전체에서 동일한 인스턴스를 사용하는 것이 바람직한 경우 싱글턴이 사용되었다.public class Logger { private static final Logger instance = new Logger(); private L..

컴퓨터공학 2025.05.23

Clean Architecture 원칙

1. Clean Architecture란 무엇인가?1-1. 정의와 철학 Clean Architecture는 2012년 Robert C. Martin(‘Uncle Bob’)이 공식적으로 소개한 소프트웨어 설계 아키텍처다. 핵심 개념은 시스템의 핵심 비즈니스 규칙을 외부로부터 완전히 독립시켜, 변화에 유연하면서도 테스트 가능한 구조를 만드는 데 있다. 그는 레이어드 아키텍처나 헥사고날 아키텍처 등 기존 구조의 장점들을 통합해 더 정제된 구조를 제시했으며, Clean Architecture는 클린 코드의 연장선으로서 “변화에 강한 소프트웨어”를 위한 철학으로 자리 잡았다. 이 아키텍처는 단순히 코드를 정리하는 기술이 아니라, 소프트웨어 시스템의 생존력, 확장성, 그리고 협업 구조를 어떻게 설계할 것인가에 대..

컴퓨터공학 2025.05.21