섹선 1, 2
1. 프로젝트 생성
먼저 스프링 부트 환경설정을 위해 Java를 설치해주었다. 버전은 가장 최신버전인 24를 선택했다. 추후에 문제가 생기면 다운그레이드를 하거나 할 생각이다.
spring boot를 기반으로 프로젝트를 쉽게 세팅할 수 있게 해주는 보일러플레이트 생성 사이트?이다. spring에서 운영한다고 한다. Maven과 Gradle 같은 빌드 툴들은 의존 관계를 다 관리해주는 툴이라고 하는데, 요즘에는 대부분 Gradle을 사용하니 Gradle로 시작하면 된다고 한다.
추가 라이브러리로는 Spring Web과 Thymeleaf를 선택하고 다운받으면 된다.
에러 페이지가 뜨면 성공이다.
2. 라이브러리 살펴보기
예전에는 톰캣을 통해 웹 서버 따로, 자바 소스 따로 구성해서 웹 서버에 자바 소소를 집어넣는 과정이 필요했는데, 요즘에는 그냥 자바 소스 라이브러리에 웹 서버가 들어있다. 그냥 바로 라이브러리 빌드해서 웹 서버를 구동시킬 수 있는 것이다.
-
강의에서는 system.out.println을 많이 쓸 텐데, 현업에서는 로깅을 통해 중요한 에러만 따로 보거나 할 수 있도록 해야한다고 한다.
-
라이브러리 살펴보기(라이브러리 조합 보기)
| Gradle은 의존관계가 있는 라이브러리를 함꼐 다운로드 한다.
"스프링 부트 라이브러리"
- spring-boot-starter-web
- spring-boot-start-tomcat: 톰캣 (웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-start-thymeleaf: 타임리프 템플릿 엔진(View)
- spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
"테스트 라이브러리"
- spring-boot-starter-test
- junit: 테스트 라이브러리
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
3. View 환경설정
처음에 실행 시 에러 페이지가 나왔던 이유는 우리가 아무런 페이지도 가지고 있지 않기 때문이다. 그래서 static 폴더 내에 html 페이지를 하나 만들어주면 그게 welcome 페이지(시작 페이지)가 된다. 그리고 서버를 껏다 켜주어야 한다.
-
"thymeleaf 템플릿엔진 동작 확인"
- 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버('viewResolver')가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿엔진 기본 viewName 매핑
- 'resources:templates/' + {ViewName} + '.html'
참고: 'spring-boot-devtools' 라이브러리를 추가하면, 'html' 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.
인텔리J 컴파일 방법: 메뉴 build -> Recompile
4. 빌드하고 실행하기
콘솔로 이동
.\gradlew build
cd build/libs
java -jar {workspaceFolderBasename}.jar
실행 확인
빌드 시에는 .bat에 그냥 build 명령어 쳐주면 된다.
그런데,
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
에러가 떳다. 아무래도 24버전 호환 문제인 것 같다. 그러니 21로 다운그레이드를 해주었다.
'WINK-(Web & App) > Spring Boot 스터디' 카테고리의 다른 글
[2025 1학기 스프링부트 스터디] 여민호 #2주차 (0) | 2025.04.01 |
---|---|
[2025 1학기 스프링부트 스터디] 류현준 #1주차 (0) | 2025.03.31 |
[2025 1학기 스프링부트 스터디] 남윤찬 #2주차 (0) | 2025.03.30 |
[2025 1학기 스프링부트 스터디] 고윤정 #1주차 (0) | 2025.03.30 |
[2025 1학기 스프링부트 스터디] 오세웅 #1주차 (0) | 2025.03.30 |