inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

유연한 컨트롤러2 - v5

핸들러, 어댑터 사용하는 이유

해결된 질문

74

horizon

작성한 질문수 4

0

지금까지 만든 컨트롤러들

MemberFormController, Save,List 전부 궁극적인 기능은 똑같은데 로직이 달랐던 거고, 각 버전마다 프론트 컨트롤러 만들어서 점점 좋게 리팩토링 시켜갔는데 ..

 

결국 궁극적인 목표가 같은 컨트롤러들을 (로직은 다르지만) 여러 개 만들고 어댑터를 사용하면서 바꿔가야 하는 상황이 어떤 상황인지 이해가 안가요..

(최종으로 리팩토링된 컨트롤러 쓰면 되는거 아닌가요? )

 

그리고 v5 프론트 컨트롤러에서,

v3 버전이든 v4 버전이든 들어오는 경로에 따라서 v3,v4로 컨트롤러가 결정되는데

개발자가 각 컨트롤러에 맞게 구현한다 라는 표현도 이해가 안가요.. (이미 요청하는 경로로 정해지는데 뭘 구현한다는건지..?)

들어오는 요청이 같은데 컨트롤러를 골라서 한다던가.. 그런것도 아닌거같고

 

그리고 v4도 깔끔하게 코딩해서 ModelView를 직접 생성하지 않게 해서 만든건데 왜 굳이 어댑터를 사용해서 modelview를 만들고 v3나 v4나 같게하는건지...?

 

ai 답변말고 지식인분들의 답변을 기다립니다

 

spring mvc

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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