[Spring Boot] 스프링부트 도구 설치하기

DANI·2023년 9월 29일
0
post-thumbnail

📝 Spring Boot Devtools

Spring Boot Devtools는 스프링부트 개발시 도움을 주는 도구이다. Spring Boot Devtools를 설치하면 서버 재시작 없이도 클래스 변경시 서버가 자동으로 재기동 된다.

1. bulid.gradle 에서 다음을 추가

developmentOnly 'org.springframework.boot:spring-boot-devtools'


2. bulid.gradle > 우클릭 > Gradle > Refresh Gradle Project 클릭



완료 시 다음과 같이 [devtools]가 나옴!






📝 Live Reload


HelloController의 출력 문자열을 변경하면 Spring Boot Devtools에 의해 수정사항이 잘 적용되는 것을 확인할 수 있었다. 하지만 브라우저 주소창에서 URL을 다시 호출하던가 브라우저 리프레시(Refresh)를 해야만 변경된 내용을 확인할 수 있다. Spring Boot Devtools의 Live Reload 기능을 사용하면 브라우저 재호출(또는 리프레시) 없이 변경 사항을 확인할 수 있다.



📝 lombok


롬복(lombok)은 자바 클래스에 Getter, Setter, 생성자 등을 자동으로 만들어 주는 도구이다. SBB 프로젝트를 진행하면서 데이터를 처리하기 위한 엔티티 클래스나 DTO 클래스등을 사용해야 하는데 이때 클래스의 속성들에 대한 Getter, Setter를 만들어야 한다.

1. 롬복 설치

롬복을 사용하려면 플러그인을 먼저 설치 해야한다.
https://projectlombok.org/download

jar파일 설치 후 "Specify location"을 눌러 롬복 플러그인을 사용할 IDE인 STS가 설치된 경로를 선택한다.


2. bulid.gradle 에서 다음을 추가!

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'




💡 의존성 옵션


  • compileOnly : 해당 라이브러리가 컴파일 단계에서만 필요한 경우에 사용한다.

    프로젝트 빌드 시점에 해당 라이브러리를 컴파일에 사용하고, 빌드된 결과물에는 포함하지 않음. 즉, 컴파일 시점에만 라이브러리를 참조할 수 있음. 예를 들어, 프로젝트에서 테스트 코드를 작성할 때, junit 라이브러리를 compileOnly로 설정하여, 테스트 코드 컴파일 시에만 해당 라이브러리를 참조할 수 있음

  • runtimeOnly : 라이브러리가 런타임에만 필요한 경우에 사용.

    이 옵션을 사용하면 프로젝트 빌드 시점에 해당 라이브러리를 클래스 패스에 추가하지 않고, 런타임에 필요한 경우에만 라이브러리를 프로젝트에 포함한다. 예를들어, 스트링 부트 프로젝트에서 JDBC 드라이버를 runtimeOnly로 설정하여, 빌드 시점에는 포함하지 않고, 런타임에 필요한 경우에만 드라이버를 프로젝트에 포함시킬 수 있음.

  • annotationProcessor

    : 컴파일 단계에서 애너테이션을 분석하고 처리하기 위해 사용한다.

  • developmentOnly : 개발환경에만 적용되는 설정이다.

    즉, 운영환경에 배포되는 jar, war 파일에는 developmentOnly로 설치된 라이브러리는 제외된다.

  • implementation : 라이브러리가 컴파일 및 런타임에 모두 필요할 때 사용.

    이 옵션을 사용하하면 빌드 시점에 해당 라이브러리를 컴파일에 사용하고, 빌드된 결과물에도 포함한다.
    implementation은 해당 라이브러리가 변경되더라도 이 라이브러리와 연관된 모든 모듈들을 컴파일하지 않고 직접 관련이 있는 모듈들만 컴파일하기 때문에 rebuild 속도가 빠르다.

  • testimplement : 테스트 코드를 수행할 때만 사용.





📝 @RequiredArgsConstructor 애너테이션


속성에 final을 적용하고 롬복의 @RequiredArgsConstructor 애너테이션을 적용하면 해당 속성을 필요로하는 생성자가 롬복에 의해 자동으로 생성된다.

의존성 주입(Dependency Injection)시 사용된다.

DI(Dependency Injection) : 스프링이 객체를 대신 생성하여 주입한다.

🔴 @RequiredArgsConstructor 애너테이션 예시

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Getter

public class HelloLombok {
	private final String name;
	private final int age;
	
// @RequiredArgsConstructor에 의해 생성자가 자동으로 생성됨
/*	public HelloLombok(String hello, int lombok) {
 *       this.hello = hello;
 *       this.lombok = lombok;
 *   } 
*/

	public static void main(String[] args) {
		HelloLombok helloLombok = new HelloLombok("헬로", 5);
		System.out.println(helloLombok.getAge());
		System.out.println(helloLombok.getName());
	}
}





✨ 이번 챕터에서 배운 부분

✅ Spring Boot Devtools 추가
✅ lombok 추가
✅ 의존성 옵션
✅ DI / @RequiredArgConstructor (의존성 자동생성)

📝 공부할 부분

✅ 의존성 옵션 및 의존성 주입에 대한 공부

0개의 댓글