Search

프로젝트 환경설정

1. 프로젝트 생성

Java11 설치 (만약 스프링부트 버전이 3을 넘어가면 Java 17 이상으로 써주자)
IDE 선택 - 이클립스나 인텔리제이로 쓰면 된다

프로젝트 생성 사이트

Maven, Gradle → 필요한 라이브러리를 땡겨서 오고, 빌드 하는 라이프 사이클까지 관리해주는 툴
SNAPSHOT은 아직 만들고 있는 버전. RC1, M1 도 정식 릴리즈가 된게 아니다.
정식 릴리즈 중에서 젤 최근꺼인 3.1.5로 진행
Group 그룹의 기업명이나 기업 도메인명을 적어준다
Artifact 빌드된 결과물
원하는 도메인과 artifact를 정해주고
Dependencies 프로젝트 시작할때 사용할 라이브러리를 선택할수있다
html을 만들어주는 템플릿 엔진 → Thymeleaf, Freemarker.. 등등
밑에 GENERATE 버튼 클릭해서 다운해서 원하는 위치에 폴더 압축풀어주고

인텔리제이에서 Open

인텔리제이에서 open import → build.gradle로 열어주기
요즘은 테스트 폴더를 생성해준다!!.. 그만큼 테스트가 중요 해짐
build.gradle안에
repositories { mavenCentral() }
XML
복사
dependencies안에 들어가는 라이브러리를 다운받는 Maven Central 사이트가 있다. 그 설정을 해준거다
특정 사이트 url 추가도 가능
메인 메소드에서 서버를 켜주면
성공
springBoot의 애플리케이션이 서버를 띄어주면서 밑에 톰캣이라는 웹 서버를 내장하고 있다그래서 톰캣을 띄어주면서 스프링 부트도 같이 올라온다

+번외) 인텔리제이 빌드 셋팅

인텔리제이를 쓰다보면 빌드가 자바를 직접실생하는게 아니라 gradle를 통해서 실행되기 때문에 서버실행할때 느린경우가 있다
setting → gradle 검색 → 빌드 관련부분을 IntelliJ IDEA로 변경

2. 라이브러리 살펴보기

스프링 부트 라이브러리

spring-boot-starter-web (톰캣, mvc)
spring-boot-starter-thymeleaf (템프릿 엔진)
spring-boot-starter(공통)
spring-boot-starter-test (테스트 라이브러리)
이렇게 스프링부트 라이브러리로 잡혀있다.
좌측 창에 External Libraries 보면 엄청 많은 양의 라이브러리가 있는데 이정도 되야지 프로젝트 시작이 가능하다.
초반에 땡겨온 srater-web이 의존하는 라이브러리까지 gradle이 다 땡겨와서 내가 추가한 라이브러리보다 많은거다. 서로 의존하는 라이브러리를 가지고 와서 많아짐
이미지만 봐도 start 라이브러리 안에 또 많은 라이브러리가 있고 또 그안에 의존하는 라이브러리가 존재한다
파란색 이미지에 있는 (*)은 중복 라이브러리를 제거해준거다

로그 출력 라이브러리

보통 출력할때 sysout을 많이 찍는 경우가 많은데 실무에서는 거의 쓰지않고 로깅을 이용해서 로그로 출력해서 사용한다
logging 안에 logback 하고 slf4j가 있는데
slf4j는 인터페이스 같은거고 요즘은 logback 위주로 사용

테스트 라이브러리

테스트 할때 사용하는 라이브러리로 JUnit5 버전을 사용
assertJ, mockito → 테스트를 편리하고 도와주는 라이브러리
spring-test → 스프링 통합 테스트 지원
JUnit → 태스트 프레임워크
mockito → 목 라이브러리
aasertJ → 테스트 코드를 편리하게 도와주는 라이브러리

3. View 환경 설정

welcome page 셋팅

도메인만 누르고 들어올때 첫 화면을 welcome page라고 한다. 지금 화이트라벨 오류 페이지로 뜨고 있으니까 변경해주자~
static 폴더 안에 index.xml 생성해서 간단한 html 코드 넣어주기
이렇게 index.xml 파일에 코드를 넣어서 웹서버가 그대로 웹브라우저에 올려주는 정적 페이지다
이제 템플릿 엔진을 사용하면 원하는 조건이나 루프를 추가해서 모양을 바꿀 수 있다
→ Thymleaf

동작 페이지 작성

@GetMapping(”hello”)
로 해주면 웹 애플리케이션에서 /hello 하면 이 메소드를 호출해준다
<html xmlns:th="http://www.thymeleaf.org">
HTML
복사
html상단에 thtmeleaf 선언을 해주면 템플릿 엔진 사용이 가능하다
p태그에 th를 추가해주면 데이터를 치환해서 보여줄수있다.
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
HTML
복사
김영한님의 스프링 입문 참고 자료
웹브라우저에서 /hello를 던져주면 톰캣에서 스프링한테 물어본다.
그러면 helloController 에 있는 hello 메소드가 실행된다. 실행될때 모델안에 데이터를 추가해서
retun “hello” 라 되어있으면 hello.html을 찾아서 데이터를 던져서 랜더링해준다.
(viewResolver가 templates안에 있는 viewName(리턴된 hello)을 찾아서 매핑해준다)

4. 빌드하고 실행하기

터미널 실행해서 해당 프로젝트 위치로 이동
% cd workspace % ls
Bash
복사
% ./gradlew build
Bash
복사
% cd build/libs % ls hello-spring-0.0.1-SNAPSHOT-plain.jar hello-spring-0.0.1-SNAPSHOT.jar % java -jar hello-spring-0.0.1-SNAPSHOT.jar
Bash
복사
빌드를 지우고 다시 생성할때 gradlew위치로 이동해서
./gradle clean ./gradle clean build
Bash
복사
build 파일이 삭제된다
그리고
% ./gradlew build
Bash
복사
다시 하면 됨.

*참고