티스토리 뷰
Project Lombok 은 자동으로 에디터와 빌드툴에 연결되어 생산성을 향상시켜주는 라이브러리입니다.
getter나 equals 메소드를 다신 쓸 일이 없어지며, 어노테이션 하나로 완전한 빌더를 만들고, 자동으로 로그 변수를 만들고, 이 외에도 더 많은 것을 할 수 있습니다.
Lombok은 자바 클래스 생성시 불필요한 작업을 줄여주는 라이브러리이다.
라이브러리 및 설정방법은 다음 링크에서 확인 할 수 있다.
Project Lombok
projectlombok.org
나는 빌드툴로 gradle을 사용했는데, dependencies 태그 안에 다음 항목을 넣으면 된다.
그리고 IDE에서 어노테이션 프로세스 활성화를 시켜준다. (사실 오래되서 기억이 가물가물..)
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

프로젝트를 하면서
이 어노테이션이 뭔지도 모르고 때려박은 경우가 너무 많아서, 제대로 알고 쓰기위해 많이 써봤던거 위주로 남겨놓는다.
@NonNull - 해당 속성이 Null일 경우 컴파일 오류를 발생시킨다.


(왼쪽은 디컴파일한 클래스다)
아마도 반드시 값이 들어있는 채로 이동하는 클래스여야될 경우 유용할 것 같다.
@Getter @Setter, 그리고 @Data - getter setter를 이 어노테이션 하나로 모두 선언해 줄 수 있다.
이 어노테이션들은 @Data로 대체 가능하다. 위의 이미지를 다시 확인해보면...

(왼쪽은 디컴파일한 클래스다)
예전엔, IDE의 기능을 활용해서 getter setter를 일일이 넣어줬으나 이제는 어노테이션 하나로 해결 가능하다.
@ToString - 클래스 내의 변수를 모두 String으로 만들어준다.

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
- 해당 클래스의 생성방식을 지정할 수 있다.
NoArgsConstructor - 매개변수가 없는 생성자를 만드는 어노테이션
AllArgsConstructor - 모든 매개변수가 있는 생성자를 만드는 어노테이션

RequiredArgsConstructor - 데이터 전달용 Class에는 별 다를게 없고 각 서비스간 호출시 생성자 주입용으로 사용할 수 있는 어노테이션이다.
서비스 단위에다가 사용하는 것 까진 봤으나..이놈은 스프링 및 자바 기초를 좀 더 배워먹은 다음 써야될 것 같다.
더불어 Data 어노테이션 생성시 이 어노테이션도 같이 포함된다.
@Builder - 빌더 패턴을 사용할 수 있는 클래스로 바꿔준다.

빌더 패턴을 사용하는 이유를 찾아보니
- 필요한 데이터만 초기화 할 수 있음.
- Optional 처럼 가독성을 높이고 유연한 소스를 작성할 수 있음
정도인것 같다. 변수가 많다면 빌더패턴으로 초기화 하는게 좀 더 편하게 여겨질떄가 있는것 같다.
초안은 이 정도로 하고
조금 더 깨달음을 얻으면 수정해 나가야지
기초부터 다시해야되겠는데
'개발' 카테고리의 다른 글
로컬 빌드 시간 48분 > 10분으로 줄였던 세팅 기록. (3) | 2023.04.08 |
---|---|
Java8 - Null 체크를 Optional로 대체하기 (2) | 2023.03.02 |
Java8 - Optional 자료형을 사용하는 이유 (4) | 2023.02.17 |
- Total
- Today
- Yesterday
- 기계식 윤활
- hmx 랩터
- intellij 같은 단어 선택
- geonworks
- 윈도우 단축키
- gradle
- 복붙 이력
- java
- 인텔리제이 메이븐
- 기계식키보드
- 기계식키보드 스위치
- 복붙 히스토리
- maven
- 스위치 윤활
- 복붙 쉽게
- 윈도우 클립보드
- 지온웍스
- 믹틀란
- 프로젝트 환경 구축
- 인텔리제이 멀티커서
- IntelliJ
- Ditto프로그램
- 키보드 윤활
- 기계식키보드 윤활
- 커스텀키보드
- 클립보드 대체
- 탭 전환 단축키
- 단축키
- 인텔리제이 커서 여러개
- JavaFX
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |