#1-1. [스프링 입문] - 프로젝트 설정
해당 사이트에 들어가서 Spring 프로젝트를 쉽게 만들 수 있다.
강의에서는
Project : Gradle Project
Language : Java
Spring Boot : 2.7.1(Release 버전은 계속 바뀜)
Dependencies : Thymleaf(Template Engines), Spring Web(Web)
설정 후 Generate 하면 끝!
이후 IntelliJ로 해당 프로젝트를 open 하면
이렇게 나온다.
주로 보아야 할 디렉터리는 src이다.
하위 디렉터리로 크게 main과 test로 나뉘는데
현재 개발 트렌드에서는 test코드를 작성하는 것이 굉장히 중요하기에 거의 대부분
웹 애플리케이션 프로젝트를 생성하게 되면 이렇게 main과 test디렉터리 형태로 생성된다.
[build.gradle]
프로젝트 관련 여러 설정을 하거나 외부 라이브러리(패키지) 등을 추가 할 수 있는 파일이다.
과거에는 전부 개발자가 타이핑을 해야 했지만,
현재에는 Spring Boot가 나오면서 개발자 친화적인 방식으로 변경되었다.
dependencies를 보면 spring intializer에서 추가했던 라이브러리들을 implementation(추가)했다고 나오는데
이 라이브러리를 다운받는 곳이 repositories에 있는 mavenCentral()이라는 공개된 사이트가 있고, 이곳에서 해당 라이브러리를 다운받으라는 설정이다. 원한다면 다른 경로를 추가해도 된다.
[.gitignore]
git에 프로젝트를 올릴 때 무시하는 파일을 설정하는 설정파일.
실행을 해보자!
1번째는 IntelliJ에서 Run을 했을 때의 모습이고
2번째는 웹 브라우저에서 주소창에 lcoalhost:8080을 입력해서 나온 결과이다.
이렇게 나오면 성공!
[Libraries]
build.gradle을 보면 의존성으로 추가한 것이 3개뿐인데
엄청나게 많은 라이브러리들을 의존하고있다. gradle과 같은 build tool들은
의존 관계를 관리해준다. 예를 들어
우리가 추가한 spring-boot-starter-web 프로젝트를 쓰려면 이 프로젝트가 굉장히 많은 의존관계를 갖고 있다. spring-boot-start가 spring-boot를 의존하고, 이것이 또 spring-boot-start-json 의존하고, 이러한 관계를 관리하고 알아서 포함시켜주기에 많은 라이브러리 들이 추가되게 된다. 이러한 역할을 gradle tool이 해준다.
[Dependencies]
Intellij 우측 상단에 보면 gradle버튼이 있는데 이를 클릭하여 Dependencies를 보면 주요 라이브러리 별 의존관계를 확인 할 수 있다.
과거에는 tomkat과 같은 웹 서버를 설치 한 후에 여러가지 라이브러리들을 설치해야 했다. 그러나 현재는 이렇게 따로 설정 필요 없이 임베디드(내장)되어 쉽게 app을 실행 할 수 있다.
[핵심 라이브러리]
스프링부트 라이브러리
Spring-Boot Lib
-> spring-boot-starter-tomcat: 톰켓(웹서버)
-> spring-webmvc: 스프링 웹 MVC
-> spring-boot-starter-thumeleaf: 타임리프 템플릿 엔진(View)
-> spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
-> spring-boot
-> spring-core
-> spring-boot-starter-logging
-> logback, slf4j
테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원