Lombok: 9개의 글
집, 회사, 노트북 인텔리J가 설치가 되어 있지만 모두 세팅이 조금씩 다르다. 세팅을 Export 해보기도 했지만 폰트가 설정이 안되거나 플러그인도 조금씩 에러가 있어서 블로그에 세팅 관련 글을 적어야 겠다고 생각했다. ▣ IntelliJ 프로젝트 SDK 설정 | 필자는 openJDK를 사용하고 있으며 openJDK는 하단의 링크에서 다운로드 받을 수 있다. ▶ File - Project Structure - Project Settings의 Project에서 Project SDK란을 설정하면 된다. JDK home path가 설정이 안되어서 인텔리j가 JDK 위치를 모르면 Platform Settings에서 추가하면 된다. ▣ 개발자 폰트 추천 - D2 Codi..
1. 빌더 패턴(Builder Pattern)을 사용해야 하는 이유 빌더 패턴 장점 필요한 데이터만 설정할 수 있음 유연성을 확보할 수 있음 가독성을 높일 수 있음 불변성을 확보할 수 있음 1. 필요한 데이터만 설정할 수 있음 예를 들어 User 객체를 생성하는데 age라는 parameter가 필요 없는 상황이라고 가정. 생성자나 정적 메소드를 이용하는 경우라면 우리는 age에 더미 값을 넣어주거나 age가 없는 생성자를 새로 만들어주어야 한다. // 1. 더미 값 User user = new User("테스트", 0, 181, 121); // 2. 생성자 또는 정적 메소드를 추가하는 방법 @NoArgsConstructor @AllArgsConstrctor public class User{ private..
@Getter, @Setter 필드에 @Getter/@Setter 을 붙이면, 해당 필드에 대한 기본 getter/setter 메소드를 생성해준다. 접근 제한자 AccessLevel @Getter/@Setter 에서의 접근 제한자 설정을 할 수 있다. 만약 생성되는 getter/setter 에 AccessLevel을 명시해주지 않으면 접근 제한자는 public이 된다. PUBLIC PROTECTED PRIVATE PACKAGE NONE MODULE @Getter/@Setter 는 필드가 아닌 클래스에도 사용할 수 있는데, 클래스에 사용할 경우 static이 아닌 전체필드에 getter/setter가 적용된다. 만약 특정 필드에서 @Getter/@Setter의 생성을 막고 싶다면 AccessLevel.NO..
Lombok 라이브러리에서 제공하는 어노테이션 중에서 자주 사용되는 어노테이션 위주로 살펴보도록 하겠습니다. 접근자/설정자 자동 생성 제일 먼저 살펴볼 어노테이션은 @Getter와 @Setter 입니다. 아마 Lombok에서 가장 많이 사용되는 어노테이션일 텐데요. 예를 들어, xxx라는 필드에 선언하면 자동으로 getXxx()(boolean 타입인 경우, isXxx())와 setXxx() 메소드를 생성해줍니다. @Getter @Setter private String name; 위와 같이 특정 필드에 어노테이션을 붙여주면, 다음과 같이 자동으로 생성된 접근자와 설정자 메소드를 사용할 수 있어서 매우 편리합니다. user.setName("홍길동"); String userName = user.getName(..
IntelliJ에서 Lombok 라이브러리를 사용하기 위한 세팅 방법 Lombok 라이브러리 Lombok은 Annotation을 이용해 컴파일 시점에 Getter, Setter, 생성자, toString, Builder 등을 자동으로 만들어주는 자바 개발자들의 필수 라이브러리 중 하나이다. 1. Lombok 의존성 추가 1) Spring Initializr 사용 2) Gradle 사용 dependencies { compileOnly 'org.projectlombok:lombok:1.18.12' annotationProcessor 'org.projectlombok:lombok:1.18.12' } 3) Maven 사용 org.projectlombok lombok 1.18.12 compile 의존성을 추가하는..
참조문서 : https://projectlombok.org/ 1. lombok 을 왜 쓰는가? 모델 Class (VO, DTO, Entity) 를 만들때, 제일 귀찮은 것이 생성자, 접근자, 설정자, toString() 등이라고 한다. 나는 별로 안 귀찮지만...ㅋㅋㅋ 그래도 lombok을 사용하면 @Getter, @Setter 같은 어노테이션만 붙이면 자동으로 해준다하니 알아보고 좋다면 써보자 기존 방식의 문제점 멤버변수를 제어하기위해 모델객체마다 반복적으로 메소드들을 생성해야 한다. IDE에서 generate 를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야한다. lombok의 특징 생성자, 접근자, 설정자, toString() 자동생성 라이브러리이므로 위와 같은 번거로움이 없다...
해당 내용은 이펙티브 자바 3판 (조슈아 블로크 지음, 이복연 옮김)를 읽고 나같은 초심자의 눈으로 이해한 내용을 정리해보았다. 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금 적었다. (commons의 각종 빌더, lombok 등) 조슈아 블로크님이 구글에 다녀서 그러신가.. 구글 라이브러리(AutoValue 등)들을 책 전면에서 홍보하고 있는 느낌이 있다..ㅋㅋㅋㅋ 구글의 라이브러리들도 물론 좋지만, apache commons나 lombok 을 (국내에서는) 아마 더 많이 실무에 쓰고 계시지 않을까 추측해본다. 3장의 아이템 목록 equals는 일반 규약을 지켜 재정의하라 equals를 재정의하려거든 hashCode도 재정의하라 toString을 항상 재정의하라 clone 재정의는 주의해서..
이펙티브자바 3판이 드디어 번역되어 출판되었다. (2달전에 2판샀는데 다 읽지도않았는데...) 해당 내용은 이펙티브 자바 3판 (조슈아 블로크 지음, 이복연 옮김)를 읽고 나같은 초심자의 눈으로 이해한 내용을 정리해보았다. (정리된 글만 보는 것보단 이 책은 꼭 사길..바랍니다) 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금 적었다. (자바빈 패턴에서 필수인자 받기, 직렬화, Weak Reference 등) 2장의 아이템 목록 생성자 대신 정적 팩터리 메서드를 고려하라 생성자에 매개변수가 많다면 빌더를 고려하라 private 생성자나 열거 타입으로 싱글턴임을 보증하라 인스턴스화를 막으려거든 private 생성자를 사용하라 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 불필요한 객체 생..
1. lombok plugin 설치Preferences > Plugins > Browse repositories.. > Lombok 검색 > Install > restart 2. Lombok 설정Preferences > Compiler > Annotation Processors > Enable annotaion processing 체크 lombok 자체 사용 설명은 생략.출처 : https://blog.woniper.net/229?category=537962