핸들러, 어댑터 사용하는 이유
지금까지 만든 컨트롤러들
MemberFormController, Save,List 전부 궁극적인 기능은 똑같은데 로직이 달랐던 거고, 각 버전마다 프론트 컨트롤러 만들어서 점점 좋게 리팩토링 시켜갔는데 ..
결국 궁극적인 목표가 같은 컨트롤러들을 (로직은 다르지만) 여러 개 만들고 어댑터를 사용하면서 바꿔가야 하는 상황이 어떤 상황인지 이해가 안가요..
(최종으로 리팩토링된 컨트롤러 쓰면 되는거 아닌가요? )
그리고 v5 프론트 컨트롤러에서,
v3 버전이든 v4 버전이든 들어오는 경로에 따라서 v3,v4로 컨트롤러가 결정되는데
개발자가 각 컨트롤러에 맞게 구현한다 라는 표현도 이해가 안가요.. (이미 요청하는 경로로 정해지는데 뭘 구현한다는건지..?)
들어오는 요청이 같은데 컨트롤러를 골라서 한다던가.. 그런것도 아닌거같고
그리고 v4도 깔끔하게 코딩해서 ModelView를 직접 생성하지 않게 해서 만든건데 왜 굳이 어댑터를 사용해서 modelview를 만들고 v3나 v4나 같게하는건지...?
ai 답변말고 지식인분들의 답변을 기다립니다
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. horizon님께서 질문하신 내용에 대해 안내드리겠습니다.
스프링 MVC와 같은 웹 프레임워크에서는 다양한 방식의 컨트롤러를 지원하여 개발자가 상황에 맞게 적절한 구조를 선택할 수 있도록 돕습니다. 이는 시스템의 유연성을 높여주며, 진화하는 요구사항에 유연하게 대응할 수 있게 해줍니다.
1. 핸들러와 어댑터의 사용 이유
핸들러와 어댑터를 사용하는 주요 이유는 다양한 방식의 컨트롤러를 처리할 수 있도록 하기 위함입니다. 각 핸들러(즉, 컨트롤러)가 다른 형태의 입력 파라미터나 반환값을 가지더라도, 어댑터를 통해 일관되게 처리할 수 있습니다. 이러한 구조는 개발자가 더 확장 가능하고 유지보수하기 쉬운 솔루션을 만들 수 있게 합니다.
2. 다양한 컨트롤러 사용 상황
각 버전의 컨트롤러가 구현체에 따라 다른 방식으로 동작할 수 있습니다. 특정 요구사항이나 시스템 성능을 고려한 최적화가 필요할 때, 개발자는 적절한 컨트롤러를 선택하게 됩니다. 이는 예를 들어, A/B 테스트를 진행하거나 특정 경로의 요청에 특별히 최적화된 처리를 하고자 할 때 유용할 수 있습니다.
3. 요청 경로와 컨트롤러 선택
개발자가 각 컨트롤러에 맞게 구현한다는 것은, 비즈니스 로직에 따라 컨트롤러의 기능을 조정하거나 새로운 기능을 추가하여 맞춤화할 수 있다는 의미입니다. 하나의 URL이 같은 비즈니스 도메인의 다양한 처리를 필요할 때, 여러 버전의 컨트롤러를 가질 수 있습니다.
4. 어댑터 사용의 이유
V4에 비해 무언가를 더 효율적으로 만들기 위해 어댑터를 사용하는 것은, 실제로 다양한 컨트롤러를 일관된 방법으로 관리하고자 하는 목적입니다. 어댑터 패턴을 통해 프레임워크는 물리적으로나 논리적으로 다양한 컨트롤러를 지원할 수 있게 되어, 필요에 따라 더 유연하게 시스템을 확장할 수 있습니다.
이와 관련해 더 깊이있는 이해를 위해, 다음의 질문 및 답변을 함께 참고하시면 도움이 될 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
servlet과 container에 대한 질문입니다
0
25
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
64
1
jsp 의존성 수정 요청
0
79
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





