Spring
[Part 1] 스프링 MVC #9
충 민
2023. 1. 14. 00:06
MVC(Model-View-Controller)
mvc를 많이 들어는 보았을 것인데 왜 이걸 사용하느냐를 아는 것이 중요하다.
Model 2 방식에 대한 이해
- 왜 Controller를 따로 분리했을까?
- URL처리
- 화면과 로직 분리
- 유지보수가 좋다는 근거가 무엇일까?
- 돈 - 변경
- 클라이언트의 변경에 비용
- 서비스 제공자 입장 비용
- 고객사의 모델 변경
DispatcherServlet은 web.xml에 있다.
여기서 알아야할 점을 간단히 설명하면 개발자가 만드는 것을 알면 편하다.
Controller와 JSP(view)만 만든다.
나머지는 MVC가 만든다고 생각하면 된다.
스프링과 스프링 MVC
- 스프링 프레임워크 CORE + 여러 Sub 프로젝트들
- 별도로 결합새서 사용하기 때문에 설정 역시 별도로 처리가능
일반적인 스프링 + 스프링 MVC
- XML이나 Java설정 이용시에 설정 분리
웹 프로젝트의 구조
- 스프링을 실행하는 존재
- ApplicationContext => WebApplicationContext
- 같이 연동되는 방식으로 동작하기 때문에 설정을 분리해도 통합해서 사용가능
Controller
- httpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현
- 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능
- Get방식 Post방식 등 전송 방식에 대한 처리를 어노테이션으로 처리(4버전이상부터)
- @GetMapping @PostMapping
- 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 가능
위의 개념들을 잘 읽어보고 프로젝트 시작을 해보자.
ex01로 프로젝트를 생성을 해주고
spring 버전은 5.2.7버전으로 진행하겠다. 또 jdk도 1.8버전으로 진행하겠다.
이렇게 설정을 했으면 업데이트를 해주길 바란다 ㅎㅎ
그리고 앞서 설정에서 했던 것들을 다 진행해보겠다.
롬복을 추가해주고 Junit의 버전도 4.7 => 4.12로 버전을 높여주겠다.
그리고 test도 추가해주겠다.
밑에 쭉 내리다보면 서블릿 버전도 매우 낮다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
기존 버전을 지우고
이렇게 추가해준다.
이런게 귀찮아서 나중에 부트를 쓴다고한다 ㅋㅋㅎㅎ
log4j를 1.2.17로 업그레이드해주고 그 밑의 exclusions는 다 지워준다.
이제 정상적으로 동작하는지 확인해보겠다.
이렇게 되셨다면 finish를 누른다.
누르게 되면 이렇게 뜰거고
그러면 다시 서버를 꺼주고
controller설정을 바꾸어준다.
더블클릭을 하시면 아래와 같이 창이 뜨는데 module을 누르고 "/" 로 바꾸어준다.
다음 글에서 이어 진행하겠다.