[Spring] 싱글톤 컨테이너의 문제점

2023. 9. 29. 22:31Spring

클래스에 필드가 있게 되면 만약 그 클래스가 빈에 등록되면 이용자들 간에 같은 객체를 사용하는 꼴이 되니 필드도 마찬가지로 공유된다. 이렇게 되면 원하지 않는 결괏값이 나올 수 있다. 더군다나 멀티쓰레드 환경에서 이 값이 써지게 되면 말이다.

따라서 이러한 문제점을 사전에 없애기 위해서는 스프링 빈은 항상 무상태(stateless)로 설계해야 한다. 이를 구현하고자 local변수, 파라미터, Threadlocal을 사용해야 한다. 또한 가급적 읽기만 가능해야 한다. 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다(의존적이면 안된다). 

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55364 

 

학습 페이지

 

www.inflearn.com