본문 바로가기

전체 글124

싱글톤 컨테이너 싱글톤 패턴 웹 어플리케이션 개발에 특화된 스프링은 기본적으로 싱글톤 패턴을 지원한다. 싱글톤 패턴에 대한 내용은 별도로 정리해 두었다. https://debuggingworld.tistory.com/107 싱글톤 패턴 (Singleton Pattern) 싱글톤 패턴 클래스 인스턴스가 단 하나만 존재하는 것을 보장하는 디자인 패턴. 웹 어플리케이션과 싱글톤 웹 어플리케이션의 특성 중 하나는 다수의 클라이언트가 동시에 요청을 하는 경우가 debuggingworld.tistory.com 싱글톤 패턴은 미리 만들어진 객체를 공유하여 효율적으로 사용할 수 있다는 장점이 있지만, 코드가 길어지고 유연성이 떨어지는 등의 문제가 있다. 스프링 컨테이너는 싱글톤 패턴의 이러한 문제점을 해결하면서, 싱글톤 패턴을 사용할.. 2024. 4. 20.
싱글톤 패턴 (Singleton Pattern) 싱글톤 패턴 클래스 인스턴스가 단 하나만 존재하는 것을 보장하는 디자인 패턴. 웹 어플리케이션과 싱글톤 웹 어플리케이션의 특성 중 하나는 다수의 클라이언트가 동시에 요청을 하는 경우가 많다는 것. 요청을 처리하는 클래스의 인스턴스를 싱글톤으로 관리하지 않으면, 각 요청마다 새로운 인스턴스를 만들어 처리하기 때문에 메모리 자원 낭비가 심각하고, 인스턴스마다 상태가 제각각이므로 관리하기가 힘들어진다. 웹 어플리케이션 개발이 주 목적인 스프링 역시 싱글톤 패턴을 지원한다. +) 물론 스프링으로 다른 어플리케이션을 개발할 수도, 스프링 컨테이너에 싱글톤 패턴을 적용하지 않도록 별도 설정도 가능하다. 싱글톤 패턴 적용 방법 적용 방법은 간단하다. 클래스 영역에 객체를 하나 생성한다. 생성한 객체를 반환하는 get.. 2024. 4. 20.
4-9. 싱글톤 패턴 웹 어플리케이션과 싱글톤 스프링은 기업용 온라인 서비스 개발을 지원하기 위해 탄생한 프레임워크다. 물론 스프링으로 웹 어플리케이션 뿐 아니라 다양한 어플리케이션을 개발할 수 있지만, 스프링은 웹 어플리케이션을 개발하는 데 최적화되어 있다. 웹 어플리케이션의 특징이 무엇이냐 하면, 다수의 클라이언트가 동시에 요청을 한다는 점이다. 즉 스프링이 웹 어플리케이션 개발에 최적화되어 있다는 얘기는, 다수의 요청을 동시에 처리하는데 특화되어 있다는 말과 같은 의미다. 다수의 요청을 동시에 처리할 때, 각 요청에 대해 일일이 객체를 생성해서 응답하면 메모리 공간이 크게 낭비될 것이다. 당장 요청을 100개만 처리한다고 해도 객체 100개가 새로 생성되고 소멸된다는 이야기인데, 결코 효율적이라 할 수 없다. 이 때 유.. 2024. 4. 8.
4-8. BeanDefinition 자바 설정 클래스 기반, XML 기반 등 스프링이 다양한 설정 형식을 지원할 수 있는 가장 큰 이유는 BeanDefinition 추상화이다. BeanDefinition은 스프링 빈 설정 메타정보이고, 실체는 인터페이스다. 스프링 컨테이너는 스프링 빈을 생성할 때 BeanDefinition에만 의존하여, BeanDefinition을 기반으로 스프링 빈을 생성한다. 즉, 자바 클래스 기반으로 설정정보를 만들었다면 자바 코드를 읽어서 BeanDefinition이 만들어지고, XML로 설정 정보를 만들었다면 XML 파일을 읽어서 BeanDefinition이 만들어진다. 이렇게 생성된 BeanDefinition을 빈 설정 메타정보라 하며, @Bean 혹은 당 하나씩 메타 정보가 생성된다. 메타 정보에는 빈 이름을.. 2023. 11. 28.