인프런 커뮤니티 질문&답변

euntak.oh님의 프로필 이미지
euntak.oh

작성한 질문수

스프링 핵심 원리 - 기본편

싱글톤 방식의 주의점

싱글톤 방식의 주의점 강의의 질문입니다.

작성

·

245

0

강의를 듣고 스프링 프레임워크에 의하여 생성되든 사용자가 Java 코드를 이용해 생성하든 Singleton 방식으로 구현된 객체는 1개의 객체가 여러 곳에서 재사용하기 때문에 무상태(stateless) 형태로 설계해야 한다는 것을 잘 알게 되었습니다.

강의에서도 예시를 들어주시면서 Class 내 Member 변수가 아닌 Method 내 지역 변수로만 값을 핸들링하며 return 시켜주시며 무상태(stateless)의 적절한 구현방법을 설명해주셨는데요.

한가지 의문이 들었습니다.

만약 Singleton 객체 내부에 선언된 공유 가능한 변수(강의 내에서는 Class의 Member 변수)에 상태값이 남을 수 있다면 함수도 Singleton 형태로 사용되는 것인가요?

만약 객체의 무상태(stateless)만 신경쓰고 개발하다가 아주 짧은 시간 내에 Singleton 객체 내부에 있는 A라는 함수에 동시다발적으로 호출이 몰리게 되면 A 함수 내부에 선언된 지역변수도 공유될 가능성이 존재하는 것인가요?

답변 1

1

안녕하세요, euntak.oh 님. 공식 서포터즈 codesweaver 입니다.
.
로컬변수의 경우, 각 스레드가 고유의 스택 메모리를 생성하여 지역변수를 보관합니다. 그래서 공유 문제가 발생하지 않습니다.
.
감사합니다.

euntak.oh님의 프로필 이미지
euntak.oh

작성한 질문수

질문하기