daramG 2022. 5. 4. 17:31

lombok 이란?

lombok은 Java 라이브러리로, 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 라이브러리이다.

 

 

lombok 설치 및 세팅

우선 maven에서 다운로드 한다.

그리고 설치를 해준다.

 

maven에서 다운받은 lombok 폴더를 연다.

 

이 폴더 안에서 우클릭을 하고 Git Bash Here를 누른다.

 

$ java -jar lombok-해당버전.jar 명령어를 치고 엔터키를 누르면

위 캡쳐화면과 같이 installer가 뜬다.

 

사용하고 있는 STS4.exe 파일을 설정해준다.

이제 설치가 완료되었으니 사용해보자

 

 

lombok 을 이용한 코드 작성

※ 코드를 작성하기 전에 스프링 툴을 종료하고 다시 시작한 다음 코드를 작성해야한다!

 

작성했었던 기존 Member.java 코드

package com.cos.blog.test;

public class Member {

	private int id;
	private String username;
	private String password;
	private String email;

	public Member(int id, String username, String password, String email) {
		this.id = id;
		this.username = username;
		this.password = password;
		this.email = email;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}

 

lombok을 사용한 Member.java 코드

package com.cos.blog.test;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
//import lombok.Getter;
//import lombok.Setter;
//@Getter
//@Setter

@Data // Getter와 Setter를 동시에 만든다.
@AllArgsConstructor // 생성자를 만든다.
@NoArgsConstructor // 빈 생성자
public class Member {
	// 여기다 private를 사용하는 이유는 바로 직접적으로 접근하는 것을 막기 위함이다.
	// 바로 접근해서 수정해버리는 것은 객체지향이랑 맞지 않는다.
	// 함수를 통해서 이 값들에 접근하게된다.
	private int id;
	private String username;
	private String password;
	private String email;
}

 

 

lombok 테스트

 

HttpControllerTest.java 파일에 다음과 같은 코드를 추가한 다음,

 

실행결과 :

 

lombok이 제대로 적용된 것을 확인할 수 있다.

 

 

 

lombok 을 이용한 코드 작성2

 

우선 @AllArgsConstructor 을 지우고 생성자를 직접 만들어보면,

 

만약 이렇게 id를 삭제해버릴 경우에는

HttpControllerTest.java
Member.java

이렇게 이게 오버로딩이 되어있어야 한다.

하지만 build패턴을 사용하면 이렇게 하지 않고 객체를 만들 수 있다.

 

Member.java
HttpControllerTest.java

 

실행결과 :

성공적으로 실행된다.

 

 

 

 

참고자료 : https://youtu.be/U3Bq4C-NEDU