4.1 롬복이란
롬복
코드를 간소화해주는 라이브러리로 getter( ), setter( ), constructor( ), toString( ) 등 필수 메서드의 반복 작성을 최소하하는 역할
로깅 기능을 사용해 프로그램의 수행 과정을 기록으로 남겨 println( )문 개선
4.2 롬복을 활용해 리팩터링
ArticleForm( ) 생성자 간소화
// 1. AllArgsConstructor 패키지 자동 임포트
import lombok.AllArgsConstructor;
// 2. 새 어노테이션 추가
@AllArgsConstructor
public class ArticleForm {
private String title;
private String content;
/* 3. 생성자 전체 삭제
public ArticleForm(String title, String content) {
this.title = title;
this.content = content;
}
*/
tostring( ) 메서드 간소화
// 1. ToString 패키지 자동 임포트
import lombok.ToString;
@AllArgsConstructor
// 2. 새 어노테이션 추가
@ToString
public class ArticleForm {
private String title;
private String content;
/* 3. 메서드 전체 삭제
@Override
public String toString() {
return "ArticleForm{" +
"title='" + title + '\'' +
", content='" + content + '\'' +
'}';
}
*/
엔티티 리팩터링하기
// 1. Article() 생성자를 대체하는 어노테이션 추가
@AllArgsConstructor
// ➋ toString() 메서드를 대체하는 어노테이션 추가
@ToString
@Entity
public class Article {
(중략)
/* 생성자 삭제
public Article(Long id, String title, String content) {
(중략)
}
*/
/* 메서드 삭제
@Override ---
public String toString() {
(중략)
}
*/
}
컨트롤러에 로그 남기기
println( )문이 데이터 기록을 남기지 않고 서버의 성능에 악영향을 끼치는 점을 개선해 로깅 기능을 사용
// 로깅 기능을 위한 어노테이션 추가
@Slf4j
@Controller
public class ArticleController {
(중략)
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
// 1. 로깅 코드 추가
log.info(form.toString());
// 2. 기존 println() 문 주석 처리
// System.out.println(form.toString());
// DTO를 엔티티로 변환
Article article = form.toEntity();
// 1. 로깅 코드 추가
log.info(article.toString());
// 2. 기존 println() 문 주석 처리
// System.out.println(article.toString()); ---
// 리파지터리로 엔티티를 DB에 저장
Article saved = articleRepository.save(article);
// 1. 로깅 코드 추가
log.info(saved.toString());
// 2. 기존 println() 문 주석 처리
// System.out.println(saved.toString());
}