WAS에서는 컨테이너가 서블릿이나 JSP 객체를 하나만 생성해서.. 모든 쓰레드들이 하나의 객체를 동시 사용하는것으로 알고 있습니다.
스프링이 각광받는 이유도.. 자체적으로 싱글톤 레파지토리를 가지고 있어서.. 스프링에 등록한 빈 객체를 하나만 만들어서 메모리를 효율적으로 사용할 수 있기때문이고요.
하나의 객체만을 메모리에 적재하고.. 여러개의 쓰레드가 공유하는 방식은 자바 서버쪽 개발에서 자주쓰이는 방법으로 알고 있는데요.
그런데 제가 궁금한것은...
컨테이너(혹은 서버)에서 객체를 하나만 생성해도 힙에 생성되고.. 그 객체 내에는 로컬변수나 클래스변수를 비롯한 쓰레드들간에 공유되었을 때 위험한 정보들이 넘쳐나는데요
WAS나 스프링 설정을 보면... 객체를 풀로 관리하는것도 아닌듯 싶은데. 쌩쌩 잘도는게 이해가 가지 않습니다.
쓰레드간에 동기화를 통해서 객체를 한번에 하나의 쓰레드가 사용하는것 같지도 않은데 말이죠..
다시정리하면