DEV/IntelliJ
[IntelliJ]Lombok(롬복) 라이브러리 설치하기
무사뎀벨레
2021. 10. 8. 01:06
인텔리제이에서 Lombok(롬복) 라이브러리를 연동하여 사용하는 방법에 대해 알아보겠습니다.
1. Lombok(롬복)이란?
위 이미지는 Lombok(롬복) 라이브러리를 소개하는 공식 사이트에 기재된 내용입니다. 어노테이션을 사용하여 반복되는 행위(반복되는 코드 작성 등)를 줄여주는 역할을 해주는 라이브러리라고 소개하고 있습니다.
객체 클래스에 @Data 어노테이션만 달면, Getter/Setter/Equals/ToString과 같은 메서드를 자동으로 생성하고 연결해주는 역할을 합니다.
2. Lombok(롬복) 플러그인 설치
※ IntelliJ 2020.03 버전 이후로는 Lombok(롬복) 라이브러리가 기본 Plugin으로 설치되어있습니다. ※
- 인텔리제이 플러그인 검색
- 인텔리제이 상단 메뉴의 File -> Settings... 로 진입합니다.
- Marketplace에서 lombok을 검색하여 install합니다.
3. Lombok(롬복) 사용하기
- 소스상에서 Lombok(롬복) 라이브러리 사용하기 위한 준비
- 아래는 Maven(메이븐) 형식과 Gradle(그래들) 형식의 프로젝트에서 사용되는 예시입니다.
1-1. Maven(메이븐)에서 Lombok(롬복) 라이브러리 적용
- pom.xml에 Lombok(롬복) 라이브러리 의존성을 주입합니다.
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency>
1-2. Gradle(그래들)에서 Lombok(롬복) 라이브러리 적용
- build.gradle에 Lombok(롬복) 라이브러리 의존성을 주입합니다.
compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
- Enable annotation 설정
- 인텔리제이 상단 메뉴의 File -> Settings...로 진입합니다.
- Build, Execution, Deployment -> Annotation Processors로 진입하여 우측의 Enable annotation processing을 체크 한 뒤 아래 Apply버튼을 눌러 적용한 뒤 OK 버튼을 누릅니다.
- 코드상에서의 적용
- 아래 이미지와 같이 lombok을 import 하여 사용합니다.
- @Data는 @Getter, @Setter, @NonNull, @EqualsAndHashCode, @ToString에 대한 걸 모두 해주는 Annotation입니다.
- @Data (Data 어노테이션)을 사용하여 선언한 변수들은 자동적으로 set변수명, get변수명이 선언됩니다.
- 아래 이미지에선 obj1이라는 String(문자열) 형식의 변수를 선언했고, 우측의 Outline탭에서는 getObj1과 setObj1이 선언돼있는 것을 확인할 수 있습니다. - @Data 이외의 기능
1) @ToString
- toString 메소드를 자동 생성합니다.
- 클래스명(필드명1=값1, 필드명2=값2, . . . ) 형태로 출력합니다.
2) @EqualsAndHashCode
- equals()와 hashCode()를 자동으로 생성합니다.
3) @Notnull
- 멤버 필드에 선언해 주면, 해당 변수 Setter에 null값이 들어올 때 NullPointException을 발생시킵니다.
4) @Value
- Value는 Immutable Class를 생성합니다.
- Data와 비슷하지만 모든 필드를 기본적으로 Private 및 Final로 로 하고, Setter 함수를 생성하지 않고, Class 또한 Final로 지정하는 것만 빼고 동일합니다.
5) @Slf4j, @Log 등
- 해당 어노테이션을 선언하면, log관련 static 메소드를 클래스 별로 선언할 필요가 없습니다.
※ 플러그인은 인텔리제이에 한 번만 다운로드하면 되지만, 의존성 추가와 Enable annotation processing 체크는 프로젝트마다 해주어야 합니다.
반응형