Java, Spring Framework (Spring Boot) 기반의 개발을 진행할 때 유용하게 사용할 수 있는 디자인 패턴에 대해 정리할 것이다.첫 시작은 대망의 싱글톤 패턴이다. 스프링은 Ioc 컨테이너에서 관리하는 객체를 싱글톤으로 관리한다. 뿐만 아니라, 환경 설정을 할 때 사용하는 @Configuration 어노테이션이 붙은 클래스 역시 Spring CGlib Proxy 방식을 적용하여 싱글톤으로 관리한다. 도대체 싱글톤이 무엇이고, 왜 스프링은 시키지도 않은 싱글톤 방식을 Default로 적용하는걸까? 우선 싱글톤이 무엇인지 정리한 후 왜, 그리고 어떻게 사용하는지 순차적으로 살펴보자. 싱글톤이란 무엇인가? 특정 클래스에 대해 객체(인스턴스)를 단 한 개만 생성하여 관리하는 것을 의미한다..