lombok
- 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다.
- Getter, Setter, ToString, Equals와 같은 다양한 코드를 완성시킨다.
//lombok을 사용할 때,
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Board extends Paging {
private int board_no;
private String board_title;
private String board_content;
private Date reg_date;
private String order_type ="1";
private List<String> bad_word;
}
//사용하지 않을 때,
public class Board extends Paging {
private int board_no;
private String board_title;
private String board_content;
private Date reg_date;
private String order_type = "1";
private List<String> bad_word;
public Board() {}
public Board(int board_no, String board_title, String board_content, Date reg_date, String order_type, List<String> bad_word) {
this.board_no = board_no;
this.board_title = board_title;
this.board_content = board_content;
this.reg_date = reg_date;
this.order_type = order_type;
this.bad_word = bad_word;
}
public int getBoard_no() {
return board_no;
}
public void setBoard_no(int board_no) {
this.board_no = board_no;
}
public String getBoard_title() {
return board_title;
}
public void setBoard_title(String board_title) {
this.board_title = board_title;
}
board_content
public String getBoard_content() {
return board_content;
}
public void setBoard_content(String board_content) {
this.board_content = board_content;
}
public Date getReg_date() {
return reg_date;
}
public void setReg_date(Date reg_date) {
this.reg_date = reg_date;
}
public String getOrder_type() {
return order_type;
}
public void setOrder_type(String order_type) {
this.order_type = order_type;
}
public List<String> getBad_word() {
return bad_word;
}
public void setBad_word(List<String> bad_word) {
this.bad_word = bad_word;
}
@Override
public String toString() {
return "Board{" +
"board_no=" + board_no +
", board_title='" + board_title + '\'' +
", board_content='" + board_content + '\'' +
", reg_date=" + reg_date +
", order_type='" + order_type + '\'' +
", bad_word=" + bad_word +
'}';
}
}
장점
- 위처럼 코드의 간결해짐과 일관성을 보장할 수 있음.
- 주로 반복적인 코드 작성을 줄이고 유지보수성을 향상시키는 데 중점을 둔다.
단점
- API설명과 내부동작을 어느정도 숙지하고 사용해야 한다.
- 사용하다보면 여러가지 예외 문제가 발생할 수 있다.
lombok에서 사용되는 주요 어노테이션
- @Getter & @Setter : getter, setter 메소드 자동으로 생성한다.
- @ToString : toString()메서드를 자동으로 생성한다.
- @NoArgsConstructor : 파라미터가 없는 기본 생성자를 자동으로 생성한다.
- @AllArgsConstructor : 모든 필드를 파라미터로 받는 생성자를 자동으로 생성한다.
- @Builder : 복잡한 객체 생성 코드를 단순화하고 가독성을 높일 수 있다.
- @Entity : JPA의 일부분으로, 클래스가 데이터베이스 테이블에 매핑됨을 나타낸다.
- @Data : @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor을 자동 완성 가능하다.
참고자료
https://pig-programming.tistory.com/97