안녕하세요? 궁금한점이 있습니다.
296
작성자 없음
작성한 질문수 0
정신없이 파다보니 내용이 좀 길어 정리를 했는데, 글 최하단의 정리에 대한 선생님의 고견이 듣고싶습니다.
https://shirohoo.github.io/spring/spring-mvc/2021-11-23-argument-resolver/
항상 감사드립니다. 🙇♂️
답변 1
0
안녕하세요. 한창훈님, 공식 서포터즈 David입니다.
.
확인 받고자 하시는 것을 잘 정리하여 질문 글에 올려주시면 답변 받으시는데 도움되실 것 같습니다:)
.
감사합니다.
0
@ModelAttribute의 유무와 상관없이 결국 ArgumentResolver가 매개변수를 생성하는 것은 같습니다.
적절한 생성자가 있다면 Setter는 아예 없어도 되었구요.
또한, 리플렉션을 통해 별도의 설정을 하고 강제로 접근하고 있었기 때문에 생성자의 접근제한자는 private이여도 아무 문제 없었습니다.
결국 @ModelAttribute가 달려있어서 바뀌는것은 ModelAndView를 View에 바인딩하느냐 아니냐 정도의 차이인 것 같고, 그러니 SSR이 아닌 CSR 방식을 사용하게 되면 ModelAndView를 아예 신경쓰지 않아도 될 것이고, 이렇게 되면 @ModelAttribute를 달았을 때 오히려 성능상 손해를 보는것이라고 생각했습니다.
어차피 별도의 View 페이지를 사용하지 않기 때문에 ModelAndView를 세팅하는 작업들이 쓸데없다고 생각됐기 때문입니다.
그런데 또 가만 보니 @ModelAttribute가 달려있다면 ArgumentResolver들이 들어있는 일급컬렉션에서 매우 높은 우선순위를 갖고 처리되기 때문에 후속 루프가 모두 생략되는 장점이 있고, @ModelAttribute가 없다면 매우 낮은 우선순위를 갖고 처리되기 때문에 순회를 훨씬 더 많이 하더라구요.
이럴거면 굳이 ModelAttributeMethodProcessor에 상태값을 줘서 두개로 나누기보다 그냥 하나로 합치는게 더 낫지않았을까? 라는 생각이 들었는데, 스프링 설계자들은 대체 어떤 큰 그림을 그리며 이런 구조를 채택했을지가 너무 궁금했습니다. 분명 어떤 이유가 있을 것 같은데 제 수준으로는 짐작가는게 없네요.. 😭
mvc 패턴 - 적용 강의에서 회원가입할 때 redirect가 아닌 forward인 이유가 궁금합니다.
0
29
1
servlet과 container에 대한 질문입니다
0
54
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
84
1
jsp 의존성 수정 요청
0
121
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
157
1
save() 메서드 문의
0
77
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
112
1
request-body-json
0
94
2
MVC 패턴의 적용 단위
0
103
1
RequestMapping을 이용한 핸들러, 어댑터
0
124
2
save 후 결과화면
0
100
2
jsp를 이용한 view
0
102
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
189
1
수업 코드 제공 관련 문의
0
106
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
109
3
파일 오픈 시
0
75
1
스프링 배치 관련
0
81
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
115
1
postman으로 /request-body-json-v1 호출시 500 error
0
105
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
90
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
119
1
console log 출력 관련 질문입니다.
0
79
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
146
1
html 변경하는 부분 적용 문제
0
108
1





