싱글톤 패턴이란

sseongeun·2024년 9월 13일
0

스프링

목록 보기
11/13

✅ 싱글톤 패턴은 왜 등장하였을까?

웹 브라우저의 경우, 다수의 사용자가 동시에 접근하는 경우가 많다.
만약 웹에 접속하는 고객이 동시에 요청할 때마다 새로운 객체를 생성한다면,
메모리 낭비도 너무 심할것!
=> 따라서 객체가 딱 1개만 생성되어 해당 인스턴스를 공유하여 사용할 수 있도록 설계하는 것이
싱글톤 패턴이다!

📌 싱글톤 패턴의 정의

싱글톤 패턴이란,클래스의 인스턴스가 단 1개만 생성되는 것이다.

📌 싱글톤 패턴의 문제점

  • private static 인스턴스 생성 + private 생성자 등, 싱글톤 패턴을 구현하는 코드가 많이 들어간다.
  • 내부 속성을 변경하기 어렵다 (final로 만드니까!)
    => 유연성이 떨어지는 문제점 발생

📌 스프링 프레임워크에서의 싱글톤 컨테이너

스프링에서는 싱글톤 레지스트리를 이용해 싱글톤 객체를 생성하고 관리한다.

따라서, 고객에 요청을 할 때마다 객체를 생성하는 것이 아니라, 이미 만들어진 객체를 공유하여 효율적으로 재사용한다.

📌 원리는?

빈이 붙은 메서드마다, 이미 빈이 존재하면 빈을 반환하고
빈이 등록되지 않았으면 인스턴스를 새로 생성하여 빈에 등록한 후 반환한다.

📌 주의점

  • 여러 사용자가 하나의 객체를 공유하므로, 무상태여야함
    즉, 특정 사용자에게 의존적인 필드가 있으면 안된다!
profile
공부 기록...

0개의 댓글