강의

멘토링

로드맵

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

horizon님의 프로필 이미지
horizon

작성한 질문수

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

유연한 컨트롤러2 - v5

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

해결된 질문

작성

·

37

·

수정됨

0

지금까지 만든 컨트롤러들

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에 비해 무언가를 더 효율적으로 만들기 위해 어댑터를 사용하는 것은, 실제로 다양한 컨트롤러를 일관된 방법으로 관리하고자 하는 목적입니다. 어댑터 패턴을 통해 프레임워크는 물리적으로나 논리적으로 다양한 컨트롤러를 지원할 수 있게 되어, 필요에 따라 더 유연하게 시스템을 확장할 수 있습니다.

이와 관련해 더 깊이있는 이해를 위해, 다음의 질문 및 답변을 함께 참고하시면 도움이 될 것 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

horizon님의 프로필 이미지
horizon

작성한 질문수

질문하기