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을 누르고 "/" 로 바꾸어준다.

 

다음 글에서 이어 진행하겠다.