spring 환경설정

2025. 9. 8. 20:45개발/스프링

반응형

최근에는 IntelliJ, springboot, Gradle을 많이 쓰는 추세이다.

라이브러리 살펴보기

Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.

스프링 부트 라이브러리

  • spring-boot-starter-web
    • spring-boot-starter-tomcat: 톰캣 (웹서버)
    • spring-webmvc: 스프링 웹 MVC
  • spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
  • spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
    • spring-boot
      • spring-core
    • spring-boot-starter-logging
      • logback, slf4j

테스트 라이브러리

  • spring-boot-starter-test
    • junit: 테스트 프레임워크
    • mockito: 목 라이브러리
    • assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
    • spring-test: 스프링 통합 테스트 지원

View 환경설정

Welcome Page 만들기

`resources/static/index.html`

<!DOCTYPE HTML>
<html>
<head>
	<title>Hello</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>
```
@Controller
public class HelloController {
	@GetMapping("hello")
	public String hello(Model model) {
		model.addAttribute("data", "hello!!");
		return "hello";
	}
}
```

resources/templates/hello.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
	<title>Hello</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>

동작 환경 그림

- 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( `viewResolver` )가 화면을 찾아서 처리한다.

  • 스프링 부트 템플릿엔진 기본 viewName 매핑
  • `resources:templates/` +{ViewName}+ `.html`

참고: `spring-boot-devtools` 라이브러리를 추가하면, `html` 파일을 컴파일만 해주면 서버 재시작 없이
View 파일 변경이 가능하다.

- 인텔리J 컴파일 방법: 메뉴 build Recompile

 

빌드하고 실행하기

  • 콘솔로 이동
    • `./gradlew build`
    • cd build/libs`
    • `java -jar hello-spring-0.0.1-SNAPSHOT.jar`
    • 실행 확인
  • 윈도우 사용자를 위한 팁
    • 콘솔로 이동 명령 프롬프트(cmd)로 이동
    • `./gradlew` `gradlew.bat` 를 실행하면 됩니다.
    • 명령 프롬프트에서 `gradlew.bat` 를 실행하려면 `gradlew` 하고 엔터를 치면 됩니다.
    • `gradlew build`
    • 폴더 목록 확인 `ls` `dir`
  • 윈도우에서 Git bash 터미널 사용하기
 

[[ 강의 시청 Tip ]] 윈도우라서 맥의 iTerm이 없는데 ... - 인프런 | 커뮤니티 질문&답변

누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.

www.inflearn.com

 

 퀴즈

    •  Spring 프로젝트에서 Gradle 같은 빌드 도구의 주요 역할은 무엇일까요?
      • Gradle 프로젝트 빌드 과정을 자동화하고, 필요한 외부 라이브러리(의존성)를 효율적으로 관리해줘요. 개발 편의성을 높여주는 핵심 도구랍니다.
    • Starter 의존성 하나만 추가해도 관련 라이브러리들이 자동으로 함께 따라와요. 덕분에 호환성 걱정 없이 필요한 기능을 쉽게 추가할 수 있죠.
    • Spring Boot에 Tomcat 같은 내장 웹 서버가 포함되어 있어서 좋은 점?
      • 내장 웹 서버 덕분에 개발자가 별도로 톰캣 같은 웹 애플리케이션 서버를 설치하고 설정할 필요가 없어져요. 빌드된 JAR 파일 하나로 바로 실행 가능하답니다.
  • 개발 시 System.out.println 대신 로깅 프레임워크를 사용하는 주된 이유는 무엇일까요?
    • 로깅 프레임워크는 메시지 중요도(레벨) 구분, 출력 위치(콘솔, 파일) 설정 등 System.out.println보다 훨씬 다양한 기능을 제공해요. 실제 서비스 운영 시 필수적이죠.
  • start.spring.ioSpring Boot 프로젝트의 초기 설정을 웹사이트에서 쉽게 할 수 있게 도와주는 도구예요. 필요한 의존성을 선택하면 프로젝트 골격을 만들어주죠
반응형