FrontControllerServletV4 model 질문
=========================================
[질문 내용]
FrontControllerServletV4 model map이 참조 변수로 model값을 빼서 render메소드를 호출에 view에 값을 넘기는건 알겠습니다. 근데 frontcontroller는 싱글톤 객체이고 메소드에 동시 접근한다고 가정하였을때 model 변수에 동시성 문제가 생기지 않는 이유를 알고싶습니다. 아무래도 동시에 save를 한다고 가정하면 model 변수를 동시에 참조하여 문제가 생길꺼같은데 이렇게 설계한 이유를 알고싶습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
FrontControllerServletV4의 model 변수에 대한 동시성 문제에 대해 궁금하신 거군요.
FrontControllerServletV4는 싱글톤 객체이기 때문에 여러 요청이 동시에 들어온다고 가정해도 해당 객체는 하나만 생성되어 공유됩니다. 개별 요청마다 다른 스레드가 처리되지만, model 변수는 각 스레드마다 새로운 객체로 생성됩니다. 이렇게 되면 각 스레드가 서로 다른 model 객체를 사용하게 되므로 동시성 문제가 발생하지 않습니다.
또한, FrontControllerServletV4의 model 변수는 메소드 내에서만 사용되기 때문에 메소드가 종료되면 해당 model 객체는 가비지 컬렉터에 의해 제거됩니다. 따라서 다른 요청과는 독립적인 객체로 동작하므로 동시성 문제가 발생하지 않습니다.
이렇게 설계된 이유는 각각의 요청이 독립적으로 처리되어야 하기 때문입니다. 각 요청마다 다른 model 객체를 사용함으로써 상호간에 영향을 미치지 않고 개별적으로 데이터를 처리할 수 있습니다.
만약 동시에 save를 수행한다면, 해당 요청에 대한 처리는 각각의 스레드가 담당하므로 서로 영향을 주지 않습니다.
다른 질문이 있으시면 언제든지 물어보세요. 즐거운 학습 되세요!
servlet과 container에 대한 질문입니다
0
25
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
64
1
jsp 의존성 수정 요청
0
78
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
143
1
save() 메서드 문의
0
67
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
101
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
97
1
RequestMapping을 이용한 핸들러, 어댑터
0
119
2
save 후 결과화면
0
89
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
178
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
100
3
파일 오픈 시
0
70
1
스프링 배치 관련
0
78
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
95
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
79
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
75
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
139
1
html 변경하는 부분 적용 문제
0
103
1
한글 깨짐
0
76
2





