1. 롬복이란?
- 코드를 간소화해 주는 라이브러리
- 필수 코드를 간편하게 작성하도록 해준다.
- 로깅(logging)을 통해 println() 문을 개선할 수 있다.
- 로깅은 프로그램의 수행 과정을 기록으로 남기는 것을 의미한다.
- project > src > build.gradle 파일 > dependencies 블럭에 아래 코드 두줄을 추가한다.
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
...
}
1-1. DTO 리팩토링
- ArticleForm() 생성자 간소화
import lombok.AllArgsConstructor; // AllArgsConstructor 패키지 자동 임포트
@AllArgsConstructor // 새 어노테이션 추가
public class ArticleForm {
private String title;
private String content;
/*
public ArticleForm(String title, String content) {
this.title = title;
this.content = content;
}
*/
}
- `@AllArgsConstructor` 단 한 줄로 생성자 네 줄을 대신할 수 있다.
- 클래스의 모든 필드를 매개변수로 하는 생성자가 자동으로 만들어진다.
- toString() 메서드 간소화
import lombok.toString; // toString 패키지 자동 임포트
@ToString // 새 어노테이션 추가
public class ArticleForm {
private String title;
private String content;
/*
@Override
public String toString() {
return "ArticleForm{" +
"title='" + title + '\'' +
", content='" + content + '\'' +
'}';
}
*/
}
- `@ToString` 단 한 줄로 toString() 메서드를 대신할 수 있다.
1-2. 엔티티 리팩토링
- DTO와 동일하게 생성자와 toString() 메서드를 제거하고 어노테이션을 추가한다.
@Entity
@AllArgsConstructor
@ToString
public class Article {
/*
public Article(Long id, String title, String content) {
}
*/
/*
@Override
public String toString() {
}
*/
}
1-3. 컨트롤러에 로그 남기기
- 실제 서버에서는 println()문으로 데이터 검증시 기록에도 남지 않고 서버의 성능에도 악영향을 준다는 단점이 있다.
- 컨트롤러 클래스 위에 `@Slf4j` 어노테이션을 추가하면 로깅 기능을 사용할 수 있다.
- Simple Logging Facade for Java의 약자이다.
- 어떤 데이터가 언제 저장되었는지 시간 정보도 남아 있다.
@Slf4j
@Controller
public class ArticleController {
}
- `log.info();` 문을 작성하고 괄호 내에 출력하고자 하는 값을 넣는다.
@Slf4j
@Controller
public class ArticleController {
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
log.info(form.toString());
// System.out.println(form.toString());
}
}
- 아래와 같이 로그가 찍히는 것을 확인할 수 있다.
홍팍 저자의 스프링부트3 자바 백엔드 개발 입문을 참고했습니다.
'Spring' 카테고리의 다른 글
Spring :: IntelliJ Spring MVC 게시판 프로젝트 - 01 기본설정 (0) | 2024.07.30 |
---|---|
Spring :: Session 적용 간단 로그인 (0) | 2024.07.23 |