Lombok
Spring boot 프로젝트에 Lombok 설정 방법
Lombok 이란
Project Lombok은 클래스 자동화 라이브러리이다. 반복적으로 사용하는 코드들을 최소화시켜 가독성과 효율성을 올려준다.
Lombok 의존성 추가
Spring Boot Add Starters에서 추가
Maven Central Repository에서 추가
Spring Boot Add Starters
프로젝트 우클릭 → Spring → Add Staters에서 lombok을 검색하여 추가한다.
다음을 눌러 pom.xml을 선택하고 Finish를 눌러 추가를 마무리한다.
Maven Central Repository
maven central repository에서 lombok
을 검색한다.
최신 버전을 찾아 pom.xml에 추가한다. 최신 버전은 검색 시점마다 다를 수 있다.
STS에 Lombok 설치
프로젝트에만 추가하면 import나 annotation 등은 사용할 수 있지만 실제로 에디터에서 인지하지 못하기 때문에 오류가 발생한다. 따라서 STS와 같은 Eclipse에도 적용을 시켜야 완벽하게 사용할 수 있다.
이클립스를 종료한다.
maven으로 다운로드한 lombok jar파일의 위치를 찾는다.
[Window] → [Preferences] 선택
검색창에 "maven" 입력 후 [Maven] → [User Settings] 선택
Local Repository 란에 있는 저장소 위치 확인
저장소 내에서 /org/projectlombok/lombok 폴더로 이동하여 jar 파일 탐색
탐색한 jar 파일을 실행한다(더블클릭하거나 CMD에서 실행)
실행한 화면에서 [Specify location] 버튼을 눌러 STS 위치를 설정한 뒤 [Install/Update]를 누른다
설치 완료 화면이 나오면 이클립스를 시작 또는 재시작한다.
Lombok 기능 사용
적용이 완료되었다면 기능을 만들어 테스트를 수행해본다.
샘플 클래스 생성
com.hakademy.spring09.entity.PersonDto
Lombok은 멤버 필드만 존재한다면 나머지 구성 요소들을 Annotation으로 만들도록 지원해준다. 사용된 옵션들은 다음과 같다.
Getter
@Getter를 추가하면 해당하는 영역에 존재하는 필드에 Getter 메소드가 생성된다. 필드마다 사용할 수도 있고, 클래스에 사용할 수도 있다.
Setter
@Setter를 추가하면 해당하는 영역에 존재하는 필드에 Setter 메소드가 생성된다. 필드마다 사용할 수도 있고, 클래스에 사용할 수도 있다.
NoArgsConstructor
클래스에 사용할 수 있으며, 기본 생성자를 만들어준다.
AllArgsConstructor
클래스에 사용할 수 있으며, 모든 필드를 매개변수로 가지는 생성자를 만들어준다.
ToString
객체를 출력했을 때 나오는 toString() 메소드를 필드 값 출력 형태로 재정의한다. exclude 옵션을 사용하여 원하지 않는 항목은 출력되지 않도록 설정할 수 있다.
Data
@Getter, @Setter, @ToString 등은 거의 모든 클래스에 존재하므로 이를 압축하여 @Data라고 부를 수 있다. 따라서 위의 PersonDto는 다음과 같이 만들 수 있다.
Builder
빌더 패턴을 사용할 수 있도록 빌더 클래스를 지원하는 Annotation이다. @Builder는 다음과 같은 형태의 객체 생성을 지원한다.
객체에 데이터를 설정하면서 생성하고 싶은 경우 변수명과 동일한 메소드를 builder가 지원한다.
한 줄 형태로 작성이 될 수 있기 때문에 코드가 더 간결해지는 효과가 발생한다.
@AllArgsConstructor
를 작성하면 기본 생성자가 사라지므로 기본 생성자가 필요하다면 @NoArgsConstructor
와 같이 작성해야 한다.
Last updated