Lombok을 활용하여, 기존 코드를 "리팩터링" 해보기
1. Lombok이란?
- 코드를 간소화 시켜주는 라이브러리 입니다.
- 개발을 하다보면 게터,세터,생성자 등등 이런 필수 메서드들을 반드시 사용하기 마련인데 이를 매번 작성하는게 만만치 않습니다.
- 그래서 나온 도구가 Lombok입니다.
2. Lombok의 기능
- 여러 필수 코드의 반복을 최소화 할수 있습니다.
- logging 기능을 통해 prinln또한 개선 즉 "리팩토링" 할 수 있습니다.
- Refactoring 이란 코드의 구조 또는 성능을 개선하는 작업을 말합니다.
- logging은 프로그램 수행과정을 기록으로 남기는 겁니다.(일종의 자동차 블랙박스 정도입니다.)
3. 실습 개요
- Lombok을 사용해서 늘어진 코드들을 간소화 및 println을 logging으로 변환하도록합니다.
4. Lombok 라이브러리 추가
- 여기에서 이제 Lombok을 추가할수 있습니다.
- 디펜던시스에 라이브러리 즉 프로젝트 생성을 위한 도구들을 여기에 추가해 주어야 합니다.
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
- 이 코끼리의 새로고침을 해줘야 합니다.
- 다음으로 해야 할 것은 플러그인 설치입니다.
- 그후에 Prefereneces ->Build, Execution, Deployment -> Enalbe annotarion processing을 체크해줍니다.
5.DTO 리팩토링
-
dto 패키지의 ArticleForm에 가보면 생성자도 있고 오버라이드된 toString()도 있습니다.
-
여기서 '아 생성자 쓰는거 귀찮아,toString도 쓰는게 귀찮아' 그러면 과감하게 지워주는데
-
대신 클래스 위에 @AllArgsConstructor를 써주면 생성자를 써준것과 같은 효과를 나타내며,
@ToSring을 써주면 오버라이딩된 toString()을 지워줘도 됩니다.
- 이렇게 해서 ArticleForm 클래스를 론복을 사용하여 리팩토링,개선해 보았습니다.
- 코드가 한눈에 보기에도 쉽고 코드가 짧아졌습니다.
6. Entity 리팩토링
- DTO와 같이 똑같이 리팩토링 해줄수 있습니다.
7.로그 남기기
- 세번째 개선 대상은 컨트롤러 입니다.
- println으로 찍어 보는 것은 실제 서버에서는 이렇게 절대 하시면 안됩니다.
- 실제 서버에서는 프린트로 검증을 하는게 로그에 남지고 않고 서버의 성능에도 상당항 악영향을 끼치기 때문에 사용하지 안습니다.
- 그래서 logging기능을 사용합니다.
7-1 로깅(logging)이란?
- 자동차에서 사고날때 블랙박스라고 보면 됩니다. 매 순간에 영상들을 다 기록하듯이 서버에서 일어나는 일들을 내가 확인하고 싶은 일들을 모두 기록할수 있게 하는것이 로깅입니다.
7-2 로깅 사용법
- 클래스위 에 @Slf4j 어노테이션을 입력합니다.
- 이렇게 log.info();안에 출력하고 싶은 값을 넣어주면 됩니다.
- 아까와 다르게 ArticleController에서 이렇게 찍힌것을 볼 수있습니다.