Getter와 Setter를 만들어 주는 것
빌더 패턴을 생성해 주는 것.
빌드 패턴이란? 생성자의 인자로 너무 많은 인자가 넘겨지는 경우나 모든 필드에 값이 들어가지 않는 경우에는 가독성 측면에서 매우 좋지 않다. 이를 해결하기 위해 나온 패턴이다.
equals와 hashcode를 만들어 주는 것
equals: 두 객체의 내용이 같은 지 확인
hashcode: 두 객체가 같은 객체인지 확인
Tip.
@EqualsAndHashCode(of="id")
: 연관 관계가 복잡해 질 때, @EqualsAndHashCode에서 서로 다른 연관 관계를 순환 참조하느라 무한 루프가 발생하고, 결국 stack overflow가 발생할 수 있기 때문에 id 값만 주로 사용
모든 필드 값을 파라미터로 받는 생성자 생성
파라미터가 없는 기본 생성자 생성
private final 타입의 멤버변수의 생성자를 만들어준다.