서블렛에서는 멤버변수를 사용하는 경우 데이터가 공유되어 문제가 발생한다고 하셨는데
만약에 서블렛 A에서
B라는 자바 클래스를 생성하는 경우
B 클래스에서 멤버변수를 사용하고 있다면
여러명이 동시에 서블렛 A를 호출하여 자바 클래스 B를 생성하는 경우에는 B 클래스의 멤버변수가 공유되나요?
책에 나온것 처럼 싱글톤 패턴으로 B 클래스 인스턴스를 한번만 생성한다면 멤버변수가 공유될텐데
호출이 있을때만다 B 클래스 인스턴스를 계속 생성하는 경우에는 멀티 스레드에 관한 문제는 없는지요?
싱글턴 패턴이 어떻게 만들어지는지를 보면 이해할 수 있을 것 같습니다.
싱글톤 패턴의 생성자는 private으로 되어 있기 때문에 다른 클래스에서는 절대 인스턴스를 생성하지 못하게 되어 있습니다.
자기 자신만 생성할 수 있게 되죠. 즉 외부에서는 수정을 하지 못하게 만들어놓은 패턴입니다.
싱글톤 패턴으로 만든 것과 단순히 클래스의 멤버변수를 공유했을 때의 프로그램을 만들어보고 비교를 해보시면 금방 이해하실 수 있을 것 같습니다.