Spring Boot

[Spring Boot] 개발환경 설정 -(1) 프로젝트 생성

DEV_HEO 2022. 5. 28. 18:31
320x100

항상 개발환경 세팅하는게 제일 오래걸리는 듯하다.

특히 git...

며칠전에 자기전에 git연동 마치는 것을 목표로 했지만 생각보다 금방 끝나지 않아서 미뤄뒀다.

이번에 티스토리 첫 게시글 쓰는겸 

스프링 부트 생성부터 처음부터 해보겠다.

 


1. Spring Boot 프로젝트 생성

https://spring.io/tools

 

Spring Tools 4 is the next generation of Spring tooling

Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.

spring.io

위에서 STS를 다운받는다.

 

 

 

스프링 부트는 Spring Starter Project로 프로젝트를 생성한다.

 

여기서 프로젝트 이름을 설정해준다.

Next를 누르기 전에 Type은 무엇인가?


2. 빌드관리도구 선택

type에 maven과 gradle을 선택할 수 있는데 둘 다 어디서 본 단어이다.

maven은 회사에서 스프링MVC를 써서 항상 보던거고

gradle은 안드로이드 개발할 때 보던 것.

이게 대충 라이브러리를 관리하고 빌드 시켜주는거라고 생각하긴 했지만 정확한 명칭은 몰랐다.

"빌드관리도구" 라고 한다.

 

그렇다면 Maven과 Gradle은 무슨 차이인가.

 

두 시스템이 빌드에 접근하는 방식에는 몇 가지 근본적인 차이점이 있다.

Gradle은 작업 의존성 그래프를 기반으로하는 반면 Maven은 고정적이고 선형적인 단계의 모델을 기반으로한다고 한다.

성능 측면에서는 둘 다 다중 모듈 빌드를 병렬로 실행할 수 있지만, Gradle은 어떤 task가 업데이트되었고 안되었는지를 체크하기 때문에 incremental build를 허용한다. 이미 업데이트된 테스크에 대해서는 작업이 실행되지 않으므로 빌드 시간이 훨씬 단축된다.

-> 빌드 설정 규모가 점점 커지면 커질수록, 빌드시간의 차이도 Maven과 비교하여 꽤 격차가 벌어질 수 있을것같다.

-maven 의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야 하지만 gradle 은 설정 주입 방식을 제공한다.

- 또한 Gradle은 concurrent에 안전한 캐시를 허용한다.

-> 2개 이상의 프로젝트에서 동일한 캐시를 사용할 경우, 서로 overwrite되지 않도록 checksum 기반의 캐시를 사용하고, 캐시를 repository와 동기화시킬 수 있다.

- 고도로 사용자 정의된 빌드를 작성하기 위해서는 커스터마이징이 간편한 Gradle을 사용하는게 훨씬 낫다.

 

- 출처 : https://jisooo.tistory.com/entry/Spring-%EB%B9%8C%EB%93%9C-%EA%B4%80%EB%A6%AC-%EB%8F%84%EA%B5%AC-Maven%EA%B3%BC-Gradle-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0

 

 

 

 

회사에서는 SpringMVC를 주로 써서 개인프로젝트에서는 Gradle을 사용해보기로 했다.


3. Hello World!

자신에게 필요한 dependecy를 선택하고 finish.

나중에 또 추가할 수 있다.

 

 

이 파일의 main함수가 스프링부트 프로젝트의 시작이다.

예전 프로젝트에서 Spring Boot를 잠깐 써봤는데 도대체 어디가 시작일까 궁금했는데

이 main함수를 발견하고 어찌나 반가웠는지..

위처럼 테스트 컨트롤러를 하나 만들어준다.

@RestController
public class HelloController {
	
	@RequestMapping("/hello")
	public String hello() {
		return "SpringBoot Hello World!";
	}
}

이렇게 뜨면 성공!!!!

 

 


git 연동까지 하려고 했으나 생각보다 포스팅이 길어져 다음 글에서 올리겠다.

320x100