본문 바로가기
Study/SpringBoot

[Spring Boot] 스프링부트 Lombok(롬복) 사용하기

by 오늘만 사는 여자 2021. 11. 4.
728x90
반응형

1. Lombok(롬복)이란?

프로젝트가 객체 중심으로 개발하던 데이터 중심으로 개발하던 개발자들은 VO/DTO/Domain 객체를 생성해 getter/setter 그리고 toString 메서드를 만듭니다. 처음에 개발 초기에는 깔끔하게 하지만 잦은 수정과 필드명 변경 추가에 따라 관리가 쉽지 않습니다.

그래서 롬복(Lombok)은 자바 클래스를 만들때 자주 사용되는 getter/setter나 toString 등의 코드를 애너테이션으로 대체해서 선언하고 java 코드를 컴파일 할 때 그에 맞는 코드를 생성해주는 것이다.



2. Lombok 의존성 추가 및 설치

Lombok 의존성 추가

Lombok 외부라이브러리를 사용하기 위해 의존성을 추가하고, 컴파일 시 새로운 플러그인 에러이슈 떄문에 아래와 같이 의존성 및 설정을 추가한다.

프로젝트 생성 시 Lombok를 생성했으면 추가 할 필요 없다.

build.gradle

configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' }

 

Lombok 다운로드

Lombok 다운로드 - https://projectlombok.org/download

 

Lombok 실행

다운받은 lombok.jar 파일을 실행하기 위해서

  • 1 . cmd 창 접속
  • 2 . 해당 프로젝트 JDK 설치 경로 이동$ C:\project\neo\Java\jdk1.8.0_221\bin
  • 3 . lombok.jar 파일 실행$ java -jar c:\project\neo\lombok.jar

 

해당 프로젝트 Eclipse 선택

 

Eclipse에 설치

이렇게 설치는 끝이다.



3. Lombok 적용

Ecplise 내 Generate 기능


Eclipse 내에 있는 기능을 사용할 경우 필드명을 수정하거나 추가 삭제 할 경우 작업이 많이 그에 따른 toString 메서드 또한 작업이 필요하다.

boardDto.java

package neo.apps.board.dto; private static final long serialVersionUID = 1L; public int boardIdx; public String title; public String content; public int hitCnt; public String regId; public String regDate; public int getBoardIdx() { return boardIdx; } public void setBoardIdx(int boardIdx) { this.boardIdx = boardIdx; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public int getHitCnt() { return hitCnt; } public void setHitCnt(int hitCnt) { this.hitCnt = hitCnt; } public String getRegId() { return regId; } public void setRegId(String regId) { this.regId = regId; } public String getRegDate() { return regDate; } public void setRegDate(String regDate) { this.regDate = regDate; } @Override public String toString() { return "BoardDto [boardIdx=" + boardIdx + ", title=" + title + ", content=" + content + ", hitCnt=" + hitCnt + ", regId=" + regId + ", regDate=" + regDate + "]"; } }

 

Lombok 애너테이션 사용


boardDto.java를 아래와 같이 코드가 전부이다. 애너테이션을 선언함으로써 개발자가 구현 할 개발 코드는 줄어들게 되고 그에 따른 추가 작업이 줄어든다.

간단한 기능만 설명하면 @Getter @Setter 애너테이션은 보시다시피 getter/setter를 대신하고 @ToString은 toString() 메서드를 대신한다.

boardDto.java

@Getter @Setter @ToString package neo.apps.board.dto; public Integer boardIdx; public String title; public String contents; public int hitCnt; public String regId; public String regDate; }

필드 출력

// 상세정보 BoardDto boardDetail = this.boardService.selectBoardDetail(request, boardIdx); System.out.print(boardDetail);

Generate toString()

BoardDto [boardIdx=2, title=테스트 제목 2, content=테스트 게시판 내용입니다. 2, hitCnt=3, regId=admin, regDate=2019-08-24]

Lombok 사용시

BoardDto(boardIdx=2, title=테스트 제목 2, content=테스트 게시판 내용입니다. 2, hitCnt=3, regId=admin, regDate=2019-08-24)



4. Lombok 애너테이션 추가 설명

Lombok 애너테이션 설명

 

출처 : https://linked2ev.github.io/gitlog/2019/08/25/springboot-mvc-7-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-Lombok(%EB%A1%AC%EB%B3%B5)-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/

728x90
반응형

댓글