[ Spring ] 스프링 프로젝트 생성
in BackEnd
프로젝트 생성
- Java 11
IDE : 인텔리J
- 스프링 부트 스타터 사이트 : https://start.spring.io/
- 요즘은 거의 다 Gradle로 사용
- Spring Boot 선택시
SNAPSHOT부분은 아직 작업중인 버전이라는 뜻, M1은 아직 정식 릴리즈 된 버전이 아니라는 뜻 - Group : 보통 기업명
- Artifact : 결과물 이름
- Dependencies : 어떤 라이브러리를 사용할 것인가
ADD DEPENDENCIES...버튼을 눌러서Spring Web(web),Thymeleaf(Template Engines)를 검색해서 추가해준다. - 그리고
GENERATE
- 인텔리제이에서
Open or Import을 누르고 방금 추출한 gradle폴더에서build.gradle을 클릭하고 Open을 해준다
그냥 그대로 실행하면 어쨌거나 8080포트가 실행되면서 웹서버가 실행된다.
Main 클래스가 있는 곳에 Controller 패키지를 새로 하나 만든뒤,
HelloController 라는 클래스를 하나 만들고
package spring.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data", "hiiiiiii :) ");
return "hello";
}
}
로 입력한다.
@GetMapping("hello") 은 Get메서드를 의미한다.
그리고 resource > 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>
라고 친 뒤 run을 하면 (+url에 localhost:8080/hello 라고 치면)

이렇게 웹서버에 잘 뜨는걸 확인할 수 있다.
그럼 이 서버가 어떻게 실행됐는지 설명을 영한님의 그림을 보도록 하자.

- 클라이언트가 localhost:8080/hello 라는 요청을 던진다.
- 스프링부트는 내장 톰캣 서버를 가지고 있는데, 이 톰캣 서버가 스프링에게 묻는다
- ‘너
hello라는 이름 가진 메서드 있어?’ 라고. - 있으면
hello라는 메서드 전체가 실행된다. - 이때 스프링이 Model을 하나 만들어서 넣어준다 (key는
data, 값은hiiiiiii :)이다 ) - 스프링부트는 기본적으로 리턴 값으로 들어있는 문자열을
resources/templates안에 있는 파일명과 비교하여 찾는다신기하다 JS에서는 문자열 리턴하면 진짜 그냥 문자열 리턴이라 나는 ‘hello’ 라고 리턴하는줄 알았는데 파일을 찾으라는 뜻이었군;;;- 컨트롤러에서 리턴 값으로 문자를 반환하면
ViewResolver가 화면을 찾아서 처리한다 - 스프링 부트 템플릿엔진 기본 viewName 매핑 =>
resource/templates+{ViewName}+.html
- 컨트롤러에서 리턴 값으로 문자를 반환하면
빌드
ls -al을 치게되면
drwxr-xr-x@ 13 soraji staff 416 Feb 18 23:13 .
drwxr-xr-x@ 10 soraji staff 320 Feb 18 22:52 ..
-rw-r--r--@ 1 soraji staff 444 Feb 18 13:52 .gitignore
drwxr-xr-x 6 soraji staff 192 Feb 18 22:54 .gradle
drwxr-xr-x 8 soraji staff 256 Feb 18 23:18 .idea
-rw-r--r--@ 1 soraji staff 1200 Feb 18 13:52 HELP.md
drwxr-xr-x 6 soraji staff 192 Feb 18 22:54 build
-rw-r--r--@ 1 soraji staff 514 Feb 18 13:52 build.gradle
drwxr-xr-x@ 3 soraji staff 96 Feb 18 13:52 gradle
-rwxr-xr-x@ 1 soraji staff 8188 Feb 18 13:52 gradlew
-rw-r--r--@ 1 soraji staff 2838 Feb 18 13:52 gradlew.bat
-rw-r--r--@ 1 soraji staff 28 Feb 18 13:52 settings.gradle
drwxr-xr-x@ 4 soraji staff 128 Feb 18 13:52 src
이렇게 나오게 되는데,
(mac에서) 빌드하는 법은 ./gradlew build 를 하고,
그 다음에 또 폴더를 확인해보면 build 파일이 생성된 걸 확인할 수 있다.
그럼 build 폴더 안으로 들어가서 , 그 안에 libs 폴더로 또 들어간다.
그리고 ls를 해보면
spring-0.0.1-SNAPSHOT.jar 파일이 생성된걸 확인할 수 있다.
자바를 실행시키는 명령어는
$ java -jar 실행시킬 jar파일 이름
이므로,
java -jar spring-0.0.1-SNAPSHOT.jar 을 해주면 서버가 실행된다.

~~올레 ᐠ( ᐕ )ᐟ ~~
만약에 하다가 잘 안되거나 그러면 다시 지우고 새로 빌드하는 명령어인
./gradlew clean build 를 해주면 된다.
김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 수업들으면서 정리!
