[김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 프로젝트 환경설정 - '프로젝트 생성' 수강
This commit is contained in:
4
SpringBoot-Introduction/Lectures/Contents.md
Normal file
4
SpringBoot-Introduction/Lectures/Contents.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Contents
|
||||
|
||||
## 프로젝트 환경설정
|
||||
- [프로젝트 생성](https://github.com/banjjoknim/spring-introduction/blob/master/Lectures/Lecture01.md)
|
||||
95
SpringBoot-Introduction/Lectures/Lecture01.md
Normal file
95
SpringBoot-Introduction/Lectures/Lecture01.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# 프로젝트 생성
|
||||
|
||||
---
|
||||
|
||||
## spring initializr
|
||||
- [spring initializr](https://start.spring.io/)에서 스프링부트 기반으로 스프링 프로젝트를 만들어주는 사이트이며, 스프링이 운영하고 있다.
|
||||
|
||||
---
|
||||
|
||||
## Maven, Gradle?
|
||||
- 필요한 라이브러리를 가져오고 빌드하는 라이프사이클까지 관리해주는 툴이다.
|
||||
- 과거에는 `Maven`을 많이 사용했으나 요즘 추세는 `Gradle`로 넘어가는 추세이다.
|
||||
- 레거시 프로젝트나 과거 프로젝트는 `Maven`으로 남아있는 경우가 있다.
|
||||
- 심지어 스프링 라이브러리 관리 자체도 요즘에는 `Gradle`로 넘어온 상황이다.
|
||||
- 따라서 `Gradle`을 추천한다.
|
||||
|
||||
---
|
||||
|
||||
## Language
|
||||
- Java
|
||||
|
||||
---
|
||||
|
||||
## Spring Boot
|
||||
- `SNAPSHOT`은 아직 만들고 있는 버전이다
|
||||
- `M1`은 정식 릴리즈된 버전이 아니다.
|
||||
- 강의상으로는 `2.3.1` 버전을 선택했으나 버전이 바뀌었을 때의 대처는 강의교재를 참고하자.
|
||||
|
||||
---
|
||||
|
||||
## Project Metadata
|
||||
- `Group`에 보통 기업 도메인명 같은 것들을 적어준다.
|
||||
- `Artifact`는 빌드되어 나올 때의 결과물이라고 보면 된다(프로젝트명 같은 것).
|
||||
- 나머지(`Name`, `Description` 등)는 그대로 둔다.
|
||||
|
||||
---
|
||||
|
||||
## Dependencies
|
||||
- 어떤 라이브러리를 가져와서 사용할 것인지를 선택하는 것.
|
||||
- `Spring Web`, HTML을 만들어주는 템플릿 엔진이 필요한데 이것으로 `Thymeleaf`선택(회사마다 다름).
|
||||
|
||||
---
|
||||
|
||||
## GENERATE
|
||||
- 아래의 `GENERATE` 버튼 누르면 `zip` 파일이 다운로드 되는데 이 것을 압축 푼 다음 인텔리제이에서 `Open or import`로 `build.gradle`을 열면된다.
|
||||
- `Open as Project` 선택.
|
||||
|
||||
---
|
||||
|
||||
## 프로젝트 내부 구조
|
||||
|
||||
### `.gradle`
|
||||
- 무시..
|
||||
|
||||
### `.idea`
|
||||
- 인텔리제이가 사용하는 설정파일이다.
|
||||
|
||||
### `gradle` -> `wrapper`
|
||||
- `gradle`과 관련해서 `gradle`을 사용하는 폴더이다.
|
||||
|
||||
### `src` -> `main`, `test`
|
||||
- `main` : `java`(하위에 실제 패키지와 소스파일 존재), `resources`(실제 자바 코드파일을 제외한 `xml`이나 `properties`, `html`등의 설정 파일 등이 존재 -> 자바 파일을 제외한 나머지는 `resources`라 보면됨)
|
||||
|
||||
- `test` : `java`(테스트 코드들과 관련된 소스들이 존재 -> 테스트 코드라는 것이 요즘 개발 트랜드에서는 중요하다는 뜻이다)
|
||||
### `build.gradle`
|
||||
- 중요!! 예전에는 한땀한땀 입력해야 했으나... 앞서 `start.spring.io`에서 선택한 설정들이 지정되어 있는 파일이다.
|
||||
- 버전 설정하고 라이브러리를 가져오는구나.. 정도로 이해하면 된다.
|
||||
|
||||
### `dependencies`
|
||||
- 앞서 설정한 라이브러리들이 입력되어 있고, 여기에 입력하면 해당 라이브러리를 사용할 수 있다.
|
||||
- 요즘에는 기본적으로 테스트 라이브러리가 들어가는데 `JUnit5`가 기본적으로 들어간다.
|
||||
|
||||
### `repositories`
|
||||
- 라이브러리를 사용하기 위해서는 다운로드를 받아야하는데, 어디서(입력된 사이트에서) 다운로드 받을지 설정을 해놓는 항목이다.
|
||||
|
||||
### `.gitignore`
|
||||
- 소스코드를 관리해준다.
|
||||
- `git`에는 필요한 소스코드 파일만 올라가야 하며 빌드된 결과물등은 올라가면 안된다.
|
||||
- 기본적으로 어느정도는 `start.spring.io`에서 다 해준다.
|
||||
|
||||
### `gradlew`, `gradlew.bat`
|
||||
- `gradle`로 빌드할 때 사용한다.
|
||||
|
||||
---
|
||||
|
||||
## Application
|
||||
- `springboot`는 톰캣 웹 서버를 내장하고 있다.
|
||||
- 그래서 `@SpringBootApplication` 어노테이션이 붙어있는 클래스에서 `main` 메서드 내에 `SpringApplication.run()`의 인자로 해당 클래스와 `main`메서드의 `args`를 넣고 실행하면 내장 톰캣 웹 서버를 자체적으로 띄우면서 스프링부트가 같이 올라온다(?).
|
||||
|
||||
---
|
||||
|
||||
## 번외
|
||||
- 인텔리제이를 사용하면 빌드가 자바를 직접 실행하는 것이 아니라 `gradle`을 통해 실행될때가 있다.
|
||||
- 이럴 때는 설정의 `Build, Execution, Deployment`에서 `Build and run using` 항목과 `Run tests using` 항목을 `IntelliJ IDEA`로 바꿔준다.
|
||||
- `gradle`을 통해서 실행하면 느릴 때가 있는데, 이렇게 설정해주면 인텔리제이에서 `gradle`을 통하지 않고 바로 자바를 띄워서 실행하므로 훨씬 빠르다.
|
||||
Reference in New Issue
Block a user