Spring

[Spring] 싱글톤 객체를 Stateless 하게 만들어야 하는 이유

지네딘 주안 2020. 2. 28. 14:51

1. 스프링 컨테이너는 객체를 생성할 때 디폴트로 싱글톤으로 생성한다.

 

2. 싱글톤 = 메모리에 하나의 인스턴스만 존재하도록 함(컨테이너에 의해 JVM의 힙 영역에 딱 한개만 동적 할당 되는 듯 하다)

 

4. 만약 여러 스레드에서 동시에 싱글톤 패턴으로 생성된 인스턴스에 접근하면 어떻게 되는가?

 

5. 세마포어나 뮤텍스 같은걸로 따로 lock처리 하도록 구현되어 있을 줄 알았는데 아님 

 

6. Singleton 패턴으로 생성되는 클래스들은 statless하게 유지되어야 함

예) Controller, Service, DAO

 

참고 :

https://stackoverflow.com/questions/25617962/how-does-the-singleton-bean-serve-the-concurrent-request

https://velog.io/@govlmo91/%EC%8A%A4%ED%94%84%EB%A7%81%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EA%B0%80-%EC%8B%B1%EA%B8%80%ED%86%A4%EC%9D%B8-%EC%9D%B4%EC%9C%A0

 

글 써주신 분들 감사합니다