Lombok 설정
Last updated
Last updated
Project Lombok은 클래스 자동화 라이브러리이다. 반복적으로 사용하는 코드들을 최소화시켜 가독성과 효율성을 올려준다.
maven central repository에서 lombok
을 검색한다.
최신 버전을 찾아 pom.xml에 추가한다.
프로젝트에만 추가하면 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]를 누른다
설치 완료 화면이 나오면 이클립스를 시작한다.
적용이 완료되었다면 기능을 만들어 테스트를 수행해본다.
com.hakademy.spring09.entity.PersonDto
Lombok은 멤버 필드만 존재한다면 나머지 구성 요소들을 Annotation으로 만들도록 지원해준다. 사용된 옵션들은 다음과 같다.
@Getter를 추가하면 해당하는 영역에 존재하는 필드에 Getter 메소드가 생성된다. 필드마다 사용할 수도 있고, 클래스에 사용할 수도 있다.
@Setter를 추가하면 해당하는 영역에 존재하는 필드에 Setter 메소드가 생성된다. 필드마다 사용할 수도 있고, 클래스에 사용할 수도 있다.
클래스에 사용할 수 있으며, 기본 생성자를 만들어준다.
클래스에 사용할 수 있으며, 모든 필드를 매개변수로 가지는 생성자를 만들어준다.
객체를 출력했을 때 나오는 toString() 메소드를 필드 값 출력 형태로 재정의한다. exclude 옵션을 사용하여 원하지 않는 항목은 출력되지 않도록 설정할 수 있다.
@Getter, @Setter, @ToString 등은 거의 모든 클래스에 존재하므로 이를 압축하여 @Data라고 부를 수 있다. 따라서 위의 PersonDto는 다음과 같이도 만들 수 있다.
JUnit과 같은 테스트로 진행해도 되지만 아직 다루지 않았으므로 샘플 매핑을 통해 화면에 출력해본다.
com.hakademy.spring09.controller.TestController
서버를 켜둔 뒤 다음 주소를 접속하여 정상적으로 수행되는지 확인한다.
http://localhost:8080/spring09/test
Lombok의 Builder를 사용하면 객체를 좀 더 쉽게 생성할 수 있다.
PersonDto를 Builder가 사용 가능한 형태로 개조한다.
빌더 패턴을 사용할 수 있도록 빌더 클래스를 지원하는 Annotation이다. @Builder는 다음과 같은 형태의 객체 생성을 지원한다.
객체에 데이터를 설정하면서 생성하고 싶은 경우 변수명과 동일한 메소드를 builder가 지원한다.
한 줄 형태로 작성이 될 수 있기 때문에 코드가 더 간결해지는 효과가 발생한다.
단, 모든 생성자가 잠금 처리되기 때문에 필요한 생성자는 명시적으로 작성하여야 한다
Mapping을 새로 만들어서 테스트를 수행한다.
매핑 주소로 접속하여 정상적으로 수행되는지 확인한다