티스토리 뷰

Language/Java

Java. Lombok!

out of coding 2018. 5. 31. 00:42

Spring으로 개발을 하다보니 신기한것을 마주하게 되었습니다.

바로 Lombok이라는 녀석...

이전에는 시간이 많이 없어서 이런것들을 찾아보는 기회가 없었는데 무언가 조금 코드를 줄일수 있는 좋은 방법인것 같습니다.


현대 언어들은 프로퍼티에 setter, getter를 자신들이 알아서 사용하도록 하죠.

자바에서는 이 부분을 setter, getter를 만들어서 사용을 했습니다.

툴에서 자동으로 생성을 해주기는 하지만... 만들고 나서 굉장히 지저분함을 금치 못하였습니다.


스프링을 이용하면서 많이 이용하는것 같은데 자바와도 떨어질수 없을것이라 생각해서 글을 적습니다.


일단 Lombok은 이것저것 기능이 많지만 대표적인 기능이 setter, getter 기능입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class TextData {
 
    private String name;
    private String gender;
    private String birth;
 
    public void setName(String name) {
        this.date = date;
    }
    public String getName() {
        return date;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getGender() {
        return gender;
    }
    public void setBirth(String birth) {
        this.birth = birth;
    }
    public String getBirth() {
        return birth;
    }
}
cs


대략 이렇게 개발을 했습니다. 흐흐

적용하면 이렇게 변합니다.


1
2
3
4
5
6
7
8
@Data
@Getter @Setter
public class TextData {
 
    private String name;
    private String gender;
    private String birth;
}
cs


너무너무 간결하게 변해버립니다.


물론 저렇게 그냥 사용하면 툴에서 에러를 뱉어내기 때문에 다른 추가사항이 필요하긴 합니다.


일단 스프링 기준의 pom.xml 파일에 적용하는 방법을 말씀 드리겠습니다.

자바는 jar 파일을 받아서 적용하면 되겠죠?


1
2
3
4
5
6
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.8</version>
    <scope>provided</scope>
</dependency>
cs


이렇게 하고 런을 하던지 빌드를 다시 하던지 하면 dependency를 가져오게 됩니다.


자 그냥 이렇게 해서 적용이 되지는 않습니다.


그래서 플러그인을 설치하여야 합니다.


STS, Eclipse 기준


maven에서 Lombok를 찾아서 jar파일을 실행하여 줍니다.


https://mvnrepository.com/artifact/org.projectlombok/lombok


아니면 사이트에 가서 jar 파일을 다운받습니다.


https://projectlombok.org/mavenrepo/index.html


자세한것은 이 사이트를 참고해도 좋을것 같네요.


http://countryxide.tistory.com/16


IntelliJ 기준


요즘 이걸 다들 많이 사용하고, 안드로이드의 경우에도 사용 가능 하니까 빠질수 없죠


윈도우는 Setting, 맥은 Preferences로 들어가서 Plugins를 고릅니다.

그러면 검색하는 화면이 나올것이구요.

여기에 lombok을 타이핑합니다.


설치가 되어 있다면 목록에 나올것이고 아니라면 Search in repositories 를 눌러줍니다.


Lombok Plugin을 선택하여 주고 인스톨을 하여 줍니다.


이것도 같은 블로그네요. 아래를 참고 하시는것도 좋을것 같습니다.


http://countryxide.tistory.com/32


이것은 인텔리제이 공식 사이트


https://plugins.jetbrains.com/plugin/6317-lombok-plugin


자 그럼 마지막으로 이것들을 사용하는데 어떤 부분들이 사용가능한지 나열만 하겠습니다.


1. 접근자, 설정자 (getter, setter)


@Getter : 접근자

@Setter : 설정자


2. 생성자


@AllArgsConstructor : 모든 변수로 생성자 생성

@RequiredArgsConstructor : final 키워드나 @NonNull 된 멤버변수로만 생성자 생성

@NoArgsConstructor : 기본 생성자 생성


3. toString


@ToString : 자동으로 만들어줍니다. DTO등을 찍어볼때 좋을것 같네요.

* @ToString(exclude = "name") 같이 넣으면 name은 제외 됩니다.


4. equal. hashCode


@EqualsAndHashCode : equal과 hashCode의 코드를 생성해줍니다.


5. data


@Data : @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString 등등을 모두 한번에 만들어 줍니다


6. NonNull


@NonNull : 변수위에 사용하며 Runtime에 NullCheck를 하여서 NullPointerException을 발생시켜줍니다.

* 다른 라이브러리에서도 많이 사용하고 안드로이드쪽에는 있기 마련이죠


구동원리정도만 알고 이런 편한 라이브러리는 잘 사용해주는게 개발자로 오래 살아남는길일겁니다.



'Language > Java' 카테고리의 다른 글

homebrew를 이용하여 OpenJDK 설치하여 보자  (0) 2020.01.17
jar와 war의 차이  (0) 2020.01.14
Java 코딩 규칙  (0) 2018.01.08
[Java] Java 버전 분류  (0) 2016.12.20
[Java]현재 Method 확인  (0) 2015.09.07
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함