728x90
반응형
이번 시간에는 싱글톤 컨테이너에 대해서 알아보았다.
먼저 싱클톤 패턴이란, 객체가 JVM안에 하나만 있어야 되는 객체 인스턴스 패턴을 말한다.
대부분 스프링 애플리케이션은 웹 애플리케이션 위주이고, 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다.
예를 들어, 3명의 클라이언트가 동시에 요청을 온다면, 각자 객체를 반환해줘야한다.
스프링이 없는 DI 컨테이너를 테스트 해보자.
싱글톤 테스트를 위한 패키지와 클래스를 생성한다.
반응형
AppConfig를 통해서 memberService를 호출하는 코드를 작성한다.
테스트를 해보면, 다른 인스턴스가 생성된 것을 확인할 수 있다.
JVM 메모리에 계속 객체가 생성되어서 올라갈 것이다.
이렇게 호출할 때마다 객체가 생성된다면, 수많은 고객이 있다면, 비효율적으로 많은 객체가 만들어질 것이다.
그렇기 때문에 메모리 낭비가 심할 것이다.
이것의 해결방안은 해당 객체가 1개만 생성되고, 공유하도록 설계하면 된다.
이것이 싱글톤 패턴이다.
즉, 예를 들어, AppConfig에서 memberServiceImpl을 호출할 때마다 new로 생성하는게 아닌,
하나만 생성해놓고 생성된 인스턴스를 공유해서 쓰면 되는것이다.
그렇게 되면 계속 객체를 생성할 필요없이, 효율적으로 개발할 수 있게 된다.
728x90
반응형
댓글