스프링 MVC의 기본기능에 대해 알아보기 위해 새로운 프로젝트 생성!
스프링부트 스타터 사이트로 이동해서 스프링 프로젝트를 만들어주면 된다.
아래와 같이 기본 세팅을 마쳤다.
! 주의 !
Packaging은 War가 아닌 Jar를 선택하자. JSP를 사용하지 않기 때문에 Jar를 사용하는 것이 좋다. 앞으로 스프링부트를 사용하면 Jar 방식을 주로 사용하게 된다.
Jar를 사용하면 항상 내장 서버(톰캣 등)를 사용하고, webapp 경로도 사용하지 않는다. 내장 서버 사용에 최적화 되어있는 기능이다. 최근에는 주로 이 방식을 사용한다.
War를 사용하면 내장 서버도 사용 가능하지만 주로 외부 서버에 배포하는 목적으로 사용한다.
build.gradle을 선택해 새로운 프로젝트를 오픈한다.
dependency가 Spring Web, Thymeleaf, Lombok 으로 잘 설정 되어있는지 확인
동작확인
- 기본 메인 클래스 실행 : SpringmvcApplication.main()
- http://localhost:8080 호출해서 Whitelabel Error Page가 나오면 정상적으로 동작된 것임
Welcome 페이지 만들기
이번 장에서 학습할 내용을 편리하게 참고하기 위해 Welcome 페이지를 만들자.
스프링부트에 Jar를 사용하면 /resources/static/ 위치에 index.html 파일을 두면 Welcome 페이지로 처리해준다.
스프링 부트가 지원하는 정적 컨텐츠 위치에 /index.html이 있으면 된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>로그 출력
<ul>
<li><a href="/log-test">로그 테스트</a></li>
</ul>
</li>
<!-- -->
<li>요청 매핑
<ul>
<li><a href="/hello-basic">hello-basic</a></li>
<li><a href="/mapping-get-v1">HTTP 메서드 매핑</a></li>
<li><a href="/mapping-get-v2">HTTP 메서드 매핑 축약</a></li>
<li><a href="/mapping/userA">경로 변수</a></li>
<li><a href="/mapping/users/userA/orders/100">경로 변수 다중</a></li>
<li><a href="/mapping-param?mode=debug">특정 파라미터 조건 매핑</a></li>
<li><a href="/mapping-header">특정 헤더 조건 매핑(POST MAN 필요)</a></li>
<li><a href="/mapping-consume">미디어 타입 조건 매핑 Content-Type(POST MAN 필요)</a></li>
<li><a href="/mapping-produce"> Accept(POST MAN 필요)</a></li>
</ul>
</li>
<li>요청 매핑 - API 예시
<ul>
<li>POST MAN 필요</li>
</ul>
</li>
<li>HTTP 요청 기본
<ul>
<li><a href="/headers">기본, 헤더 조회</a></li>
</ul>
</li>
<li>HTTP 요청 파라미터
<ul>
<li><a href="/request-param-v1?username=hello&age=20">요청 파라미터 v1</
a></li>
<li><a href="/request-param-v2?username=hello&age=20">요청 파라미터 v2</
a></li>
<li><a href="/request-param-v3?username=hello&age=20">요청 파라미터 v3</
a></li>
<li><a href="/request-param-v4?username=hello&age=20">요청 파라미터 v4</
a></li>
<li><a href="/request-param-required?username=hello&age=20">요청 파라미터 필수</a></li>
<li><a href="/request-param-default?username=hello&age=20">요청 파라미터 기본값</a></li>
<li><a href="/request-param-map?username=hello&age=20">요청 파라미터 MAP</a></li>
<li><a href="/model-attribute-v1?username=hello&age=20">요청 파라미터 @ModelAttribute v1</a></li>
<li><a href="/model-attribute-v2?username=hello&age=20">요청 파라미터 @ModelAttribute v2</a></li>
</ul>
</li>
<li>HTTP 요청 메세지
<ul>
<li>POST MAN</li>
</ul>
</li>
<li>HTTP 응답 - 정적 리소스, 뷰 템플릿
<ul>
<li><a href="/basic/hello-form.html">정적 리소스</a></li>
<li><a href="/response-view-v1">뷰 템플릿 v1</a></li>
<li><a href="/response-view-v2">뷰 템플릿 v2</a></li>
</ul>
</li>
<li>HTTP 응답 - HTTP API, 메세지 바디에 직접 입력
<ul>
<li><a href="/response-body-string-v1">HTTP API String v1</a></li>
<li><a href="/response-body-string-v2">HTTP API String v2</a></li>
<li><a href="/response-body-string-v3">HTTP API String v3</a></li>
<li><a href="/response-body-json-v1">HTTP API Json v1</a></li>
<li><a href="/response-body-json-v2">HTTP API Json v2</a></li>
</ul>
</li>
</ul>
</body>
</html>
Welcome 페이지까지 완료!
'Backend' 카테고리의 다른 글
[스프링 MVC] Request Mapping (0) | 2025.03.14 |
---|---|
[스프링 MVC] 로깅 알아보기 (0) | 2025.03.14 |
[스프링 MVC] 실용적인 방식 (0) | 2025.03.13 |
[스프링 MVC] 컨트롤러 통합 (0) | 2025.03.13 |
[스프링 MVC] 스프링 MVC 시작하기 (0) | 2025.03.13 |