Getter/Setter를 사용하는 이유, +Lombok

김상혁·2021년 4월 13일
4

개념정리

목록 보기
8/13

1. Getter/Setter

자바(객체지향 언어)에서 프로젝트를 진행하면 아래와 같은 클래스를 자주 접하게된다.

private String name;
private int price;
private int count;


public string GetName() { return name; } // {}는 한줄로 줄이면 보기좋다.
public void SetName(string name) { name = name; }

public string GetPrice() { return price; }
public void SetPrice(string price) { price = price; }

public string GetCount() { return count; }
public void SetCount(string count) { name = count; }

왜 굳이 private으로 변수를 생성하고 get/set을 이용해 데이터에 접근할까?

이는 데이터 무결성지키기 위함이다.
만약 음식의 가격, 갯수가 음수가 온다면 데이터 형식에 맞지 않기 때문에 getset 함수 내에서 무결성을 지켜주어야한다.

▶ 무결성
데이터의 정확성과 일관성을 유지하고 보증하는 것
ex) 물건의 가격은 음수일 수 없다. -> (price > 0)

  // set 함수를 통해 무결성 지키기
public void SetPrice() { 
  if(price >= 0) {
	  price = price; 
  } else {
  	  throw new IllegalArgumentException("가격은 음수가 될 수 없습니다.");
}

2. Lombok

단축키를 통해 get/set을 쉽게 만들 수 있고, 무결성을 지킬 수 있지만, 변수가 많고 지킬 무결성이 없을 수 있다.

이럴 때 Lombok을 사용하면 get/set 함수를 직접 작성하지 않아도 사용이 가능하다.

<!-- Lombok -->
<!-- version : https://projectlombok.org/download -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version> <!--버전은 그때 맞춰서-->
</dependency>  
// Lombok 사용 예시
import lombok.Data;
  
@Data
private String name;
private int price;
private int count;

0개의 댓글