스프링MVC 구조 - 모델 2방식 구조: 화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조
- 개발자와 웹 퍼블리셔 영역 분리
- 뷰의 교체, 변경과 같은 유지보수에 유용
문제점: 컨트롤러 사이의 중복적인 코드의 문제, 개발자의 개발 패턴의 차이
→ Front Controller 방식: 전체 로직의 일부만을 컨트롤러가 처리(Delegation)
스프링 MVC가 처리
- URI 분석 적절한 컨트롤러 찾기
- 컨트롤러에 필요한 메소드 호출
- 컨트롤러 결과 데이터를 뷰로 전달
- 적절한 뷰 찾기
개발자가 처리
- 특정 URI에 동작하는 컨트롤러를 설계
- 서비스 객체 생성
- DAO 객체 생성
- 컨트롤러 내에 원하는 결과를 메소드로 설계
- 뷰애서 전달받은 데이터 출력
---------------------------------------------------------------------------------
스프링 MVC 컨트롤러
- 사용자의 요청에 필요한 데이터 추출, VO 또는 DTO로 변환하는 파라미터 수집 작업 (자동으로 처리)
- 스프링 MVC 설정은 XML과 에노테이션
- 메소드마다 필요한 애노테이션을 설정할 수 있기 때문에 여러 메소드를 하나의 컨트롤러에 집중해서 작성 가능
- 테스트 모듈을 사용해 WAS 실행 없이도 테스트 가능
- 상속이나 인터페이스 구현하지 않고 @Controller 애노테이션 추가만 하면 된다
- 메소드의 파라미터와 리턴 타입에 대한 제약이 없다
- 다양한 클래스를 통해 유효성 검사나 파일업로드 등을 처리할 수 있다
'Spring' 카테고리의 다른 글
Spring에서 웹소켓으로 알림 받기 (0) | 2018.10.12 |
---|---|
"쿠키를 이해하려면 세션부터 알아야 한다?" (0) | 2018.09.11 |
"DTO와 VO의 차이는?" (0) | 2018.09.11 |
"Spring @Around 이해할 수 있나요?" (0) | 2018.09.07 |
"Spring DAO와 Service 메소드 명은 왜 다를까?" (0) | 2018.09.06 |