본문 바로가기
Backend

MVC 웹 프로젝트 만드는 방법 두가지 (STS / MVC 패턴 / 스프링 입문 / 백엔드 / 웹개발)

by 비전공자 기록광 2021. 4. 18.
반응형

이전에 이클립스에 스프링을 다운받아 Maven프로젝트를 만드는 실습을 진행했다.

 

▶ Maven 프로젝트만들기

2021.04.02 - [IT 독학/WEB] - [Spring ①] Maven 프로젝트 만드는 방법 (이클립스 스프링 다운 / 스프링 입문 / 백엔드)

 

 

▶ MVC 패턴

2021.02.12 - [IT 독학/WEB] - MVC 패턴 ( MVC 이론 / Model & View & Controller / 웹개발 기초 / 웹개발 독학 / 백엔드 / 웹 프로그래밍)

 

스프링에서 MVC 패턴을 사용해 웹 프로젝트를 만들면 컨트롤러에 필요한 특정 메소드를 스프링이 자동으로 호출해 주고 그 결과를 뷰로 넘겨주며 또 적절한 뷰를 또 찾아주는 등 굉장히 편리하게 개발할 수 있다.

 

 

 

이제 Spring Tool Suite (STS)에서 MVC 프로젝트를 만드는 방법 두가지를 실습해보겠다.

 

 

첫번째 방법은 이클립스에서 하던대로 Dynamic Web Project를 통해 MVC 패턴으로 만들어주는 것이고

두번째 방법은 STS에서 제공하는 Spring Legacy Project의 Spring MVC Project를 사용해 만들어주는 것이다.

 

 

Spring 실습1 Dynamic Web Project MVC 패턴

1. 프로젝트 생성

 

New > Dynamic Web Project 

 

톰켓이 잘못됐다고 오류가 뜬다.

톰켓을 우리가 다운받아놓은 걸로 지정한다.

나는 아파치 8.5로..

 

 

 

2. Maven 프로젝트로 변경

 

 

 

3. pom.xml 에 'spring web' 과 'spring web mvc' 를 추가

 

Spring ① 에서 설명했듯 pom.xml은 프로젝트의 라이브러리를 한번에 관리하는 maven설정 파일이다.

 

mvnrepository.com/

위의 사이트에서 찾아 클릭해 들어가 버전을 선택해 복사해오면 된다. 

버전은 딱히 상관이 없고 적당히 최근 것 중에서 사람들이 많이 쓴 걸로..ㅎㅎ 선택하면 된다.

 

 

밑의 주소를 복사해 pom.xml에 붙여넣으면 된다.

 

 

이렇게 두개 모두 넣어줬다.

그대로 저장하고 maven을 update 해준다.

 

 

그러면 이렇게 Spring 프로젝트로 잘 바뀐 걸 볼 수 있다.

 

 

4. WEB-INF 의 web.xml 에서 listener 설정, dispatcherservlet 호출

 

WEB-INF에 web.xml이 없다면 만들어주면 된다.

web.xml은 웹 서버에서 사용할 기본적인 설정을 적어주는 파일이다. 

 

일단 여기에 listener 설정을 해준다. 여기는 IoC 컨테이너 역할을 하는 Bean 설정 파일 applicationContext.xml 의 정보를 넣어준다.

 

그리고 DispatcherServlet 호출을 적어준다. 

여기는 주로 MVC에서 View와 Controller에 관한 정보를 적어준다.

 

DispatcherServlet을 hello-servlet.xml이란 이름으로 만들어줬다.

 

DispatcherServlet은 클라이언트 브라우저와 컨트롤러 사이에서 요청을 받아주고 응답해주는 서블릿이다.

 

bean 정보만 적어준다.

 

5. applicationContext.xml 생성

 

applicationContext.xml 는 root-context.xml 로도 불리고 주로 MVC에서 Model에 관한 정보를 적어준다.

 

 

 

6. 첫 view 페이지 browser.html 생성

 

처음 실행되는 화면을 만들어준다. 

 

스프링 MVC패턴 작동 과정을 보여주기 위해

'Hello Spring'을 누르면 페이지 전환이 되는 간단한 요청 hello.do 를 넣어준다.

 

 

7. 전환될 페이지 hello.jsp 생성

 

일단 파일만 만들어준다.

 

 

 

8. Controller, Biz, Dao

 

src파일에 세개의 java 파일을 만들어준다.

 

 

일단 요청을 controller에서 받아준다.

 

8-1. Controller : 요청을 받아 > biz

@Controller로 이 java파일이 스프링 MVC패턴의 Controller임을 선언해준다.

@RequestMapping 으로 특정 url을 클래스나 메소드와 매핑시켜준다.

이따 리턴받을 값과 hello.do 요청이 매핑될 것이다.

 

 

구동 방향이 Controller > Biz > Dao 이기 때문에

@Autowired 로 Biz를 주입받아 호출해준다.

 

8-2. Biz : controller에서 biz로 넘어와 > Dao

 

똑같이 @Autowired로 Dao를 주입받아 호출해준다.

또 @Service 어노테이션으로 이 java 파일이 서비스 객체임을 선언해준다.

 

8-3. Dao : Biz 에서 넘어와 SayHello( ) 메서드 값 리턴

 

 

8-4. Biz : dao 의 값과 함께 리턴

 

9. hello.jsp 코드 완성 후 실행

 

 

이제 이렇게 biz 와 dao에서 담은 값이 컨트롤러를 거쳐 뷰로 잘 불러와지는 걸 볼 수있다.

 

 

 

 

Spring 실습2 Spring MVC Project

 

1. 프로젝스 생성

New > Spring Legacy Project > Spring MVC Project

 

STS 설치 후 처음 만드는 프로젝트이기 때문에 다운로드가 뜬다. 해주면 된다. 캡쳐를 다시 못했는데 나는 이름을 MVC02로 만들었다.

 

 

 

패키지는 적당히 평소에 쓰던대로 만들어주면 된다. 

 

몇가지 라이브러리가 자동으로 다운되는 걸 기다려준다.

 

 

잘 생성이 됐다. pom.xml을 보면 또 자동으로 디펜던시가 이것저것 많이 들어가져있는 걸 볼 수 있다.

 

 

2. web.xml에서 Servlet의 url-pattern만 바꿔줬다.

그리고 표시한 root-context.xml 은 위에서 썼던 applicationContext.xml 과 같은 거고 이름만 다른데 자동으로 생성된 것으로 알면 된다. 

 

 

 

 3. 첫 view 페이지 browser.html 생성

 

 

스프링 MVC패턴 작동 과정을 보여주기 위해

'Hello Spring'을 누르면 페이지 전환이 되는 간단한 요청 hello.do 를 넣어준다.

 

 

4. Controller에서 요청 받아 처리

 

mvc 프로젝트로 만들면 이렇게 HomeController.java가 자동으로 생성된다.

여기에 hello.do 요청만 매핑해줬다.

 

 

그리고 home.jsp도 자동으로 생성되어 있는데

그냥 home.jsp로 리턴 그대로 해줬다.

 

 

실행하면 이렇게 화면에 잘 출력된다.

 

? 부분은 인코딩이 잘 안된 문제인데 그건 쉽게 필터를 추가해주면 된다.

 

+ web.xml 에서 encoding Filter을 추가해줬다.

 

잘 뜨는 걸 볼 수 있다.

 

 

 

이렇게 두가지 방법을 통해 스프링 MVC 패턴의 웹 프로젝트를 만드는 실습을 해봤다.

확실히 MVC 프로젝트를 이용하는 편이 편하다. 

 

이렇게 스프링 MVC가 어떻게 구동되는지만 잘 알고 있으면 어떤 사이트라도 잘 만들 수 있다. 

반응형

댓글