1. 프로젝트 생성 - spring initializr
spring initializr를 검색하거나, 아래 링크를 통해 스프링에서 제공하는 툴에 접속해 보자.
몇 가지 설정만 하면 간단히 프로젝트를 시작할 수 있다.
1) Project
빌드 도구는 gradle을 사용할 것 이기 때문에 `Gradle - Groovy`를 선택.
2) Language
`Java`
3) Spring Boot
버전은 `3.2.5` 선택
버전 뒤에 (SANPSHOT) 이 붙어있는 것은 아직 개발이 완료되지 않은 버전을 의미한다고 하니 피하도록 하자. 나는 뒤에 영어가 붙어있지 않는 것 중 가장 최신 버전을 골랐다.
4) Project Metadata
- Group : 보통은 도메인 네임을 사용한다. 나는 `lottoisgood.com`을 사용하겠다. 도메인명은 절대 겹칠 수 없기 때문에 도메인 네임을 관례적으로 사용한다고 한다. 실제 사용하는 도메인일 필요는 없으니 도메인이 없으면 비슷하게 사용하자. 여기서 입력한 Group명이 프로젝트 폴더 경로가 된다.
- Artifact, name : 프로젝트명이다. 나는 `lotto`를 사용할 것이다.
- Description : 프로젝트 설명이다. 생략해도 무방하다.
- Package name : 패키지명이다. Group+Artifact로 자동 생성 해 준다. 결국 도메인명. 프로젝트명에서 '.'을 구분자로 패키지를 생성해 준다. 운영체제는 파일이름이 같더라도 패키지명이 다르면 서로 다른 파일로 인식한다. 도메인은 겹치지 않으니까 다른 프로젝트의 파일과 구분될 수 있다고 한다.
- Packaging : `Jar` spring boot는 jar를 권장한다. spring boot는 톰캣과 서블릿을 내장하고 있기 때문이다. jsp를 사용한다면 war를 써야 할 것이다.
- Java : `java 17`을 사용할 것이다. 일할 때는 java 8 버전을 사용하고 있지만, spring 3.0부터는 17 이상을 사용해야 한다.
5) Dependencies
Dependencies는 기본적인 것 4개만 추가했다.
- Spring Web : `내장형 톰캣`, `json`, `webmvc` 등 웹을 구동시키려면 필요한 것들이 들어있다.
- Spring Boot Dev Tools : `Property Default`, `Automatic Restart`, `Live Reload` 등 개발환경에서 필요한 유용한 기능들을 제공한다. 개발 단계에서는 소스의 수정이 잦은 편인데 개발자가 일일이 서버를 재기동하지 않아도 자동으로 해주는 기능이 들어 편리하다.
- Lombok : getter, setter, Constructor, toString 등 자주 사용하는 기능들을 @만 붙여주면 자동으로 생성해 주는 편리한 라이브러리다. 대표적으로 `@Getter`, `@Setter`, `@RequiredArgsConstructor` 등을 사용할 수 있다.
- Thymleaf : 서버 사이드 템플릿 엔진이라고 한다. 현재 회사에서는 spring + jsp를 사용하고 있는데, spring boot는 jsp가 아닌 thymeleaf를 보통 사용한다고 한다.
이제 설정이 모두 끝났으니 하단의 GENERATE 버튼을 클릭하면 다운로드가 시작된다.
아까 설정한 artifact명으로 압축파일 하나가 생성되었을 것이다. 압출을 풀어보자.
방금 기본적으로 세팅한 설정값들이 적용된 파일들이 보일 것이다. 이것을 자신이 사용하는 IDE에 올려서 개발을 시작하면 된다.
2. IntelliJ 세팅
1) project open
압축해제한 파일을 선택해 주자. 나는 c드라이브에 projects 폴더를 만든 뒤 해당 폴더에 프로젝트 폴더를 위치시켜 주었다.
인텔리제이가 해당 프로젝트를 신뢰하냐고 묻는다. Trush Project를 누르면 프로젝트가 열리게 되고 우측 하단에 열심히 빌드가 되는 것을 확인할 수 있다.
2) build.gradle
build.gradle 파일을 열어보면 아까 설정한 자바 버전이나, dependencies들을 확인할 수 있다.
앞으로 디펜던시를 추가할 때마다 자주 볼 파일이다.
3) Application class
설정한 group명으로 폴더가 생성되었고, 마지막 artifact명에 해당하는 폴더에 main 메서드를 포함하는 Application class가 생성되어 있는 것을 확인할 수 있다.
바로 실행시켜 보면 콘솔창에 무수한 INFO들이 쏟아진다.
대충 보면 java17을 시작했고 Tomcat이 8080 port에서 잘 시작되었다는 것을 확인할 수 있다.
이전 스프링을 사용할 때에는 톰캣을 설치한 뒤 연결 설정까지 했었어야 했는데 자동으로 spring boot는 알아서 다 해준다. 짱이다.
사용하는 브라우저를 열고 localhost:8080을 입력해 주자.
그럼 이런 Whitelabel Error Page를 만날 수 있다.
4) 404 Error. No static resource
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
There was an unexpected error (type=Not Found, status=404).
No static resource.
404 에러로 static resoruce를 찾을 수 없다고 한다.
왜냐하면 안 만들어줬기 때문이다. (이건 왜 알아서 안 만들어줄까?)
5) index.html 만들기
`src/main/resources/static` 폴더에 `index.html` 파일을 생성해 주자.
그리고 프로젝트를 처음 시작했으니 hello world! 를 입력해 주자. 이거 안 하면 세상이 서운해한다.
이제 다시 localhost:8080을 열어보면 입력한 hello.world가 잘 출력되는 것을 확인할 수 있다.
자 이제 정말 기본적인 세팅은 끝났고, 본격적으로 프로젝트에 들어가기 전에 깃에 해당 프로젝트를 올려주도록 하겠다.
그건 다음 포스팅에~
'사이드 프로젝트 > 로또명당' 카테고리의 다른 글
[Spring Boot 사이드 프로젝트] 4. 정적 리소스(html, css, js) 바로 반영 설정(spring boot devtools) (0) | 2024.05.18 |
---|---|
[Spring Boot 사이드 프로젝트] 3. Thymeleaf Layout 적용 (Tiles 대체) (2) | 2024.05.13 |
[Spring Boot 사이드 프로젝트] 2. 깃허브에 프로젝트 올리기(인텔리제이) (0) | 2024.05.12 |
[Spring Boot 사이드 프로젝트] 0. 사이드 프로젝트의 시작 방법 (0) | 2024.05.10 |
[error] Srping boot / thymeleaf 에러 : org.thymeleaf.exceptions.TemplateInputException (0) | 2024.05.05 |