본문 바로가기
Back/Spring

Day20_#9 IntelliJ 스프링부트 롬복과 리팩터링

by uxia 2023. 6. 8.

 

Lombok을 사용해서 늘어진 코드 간소화 및
Println 메소드를 Logging으로 변환

 

- Lombok : 코드를 간소화시켜주는 라이브러리

- Logging : 프로그램의 수행 과정을 기록으로 남기는 것

- Refactoring : 코드의 구조 또는 성능을 개선하는 작업

 

롬복은 getter(), setter(), constructor(), toString()

등을 매번 작성하기 귀찮은 사람들을 위한 도구로,

Lombok을 통해 필수코드의 반복을 최소화할 수 있고

로깅 기능을 통해 Println 또한 리팩토링 할 수 있음.

 

 


 

롬복을 먼저 설치해야하는데,

IntelliJ에서 프로젝트를 열었을 때 보이는

코끼리 아이콘의 build.gradle을 열면 여러 코드가 뜬다.

 

그 중 dependencies에는 스프링부트 프로젝트 생성 시 추가했던

도구들이 적혀져있는데, 

여기에 롬복을 추가해주면 된다.

 

	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'

위 코드를 입력해준 다음

우측 상단에 있는 코끼리 새로고침 아이콘을 눌러주면 된다.

 

반영이 되면, 우측의 Graddle 탭에서 롬복이 추가된 걸 확인할 수 있다.

 


 

이제 롬복 플러그인 설치를 해줘야하는데,

Help → Find Action... → Actions에 Plugins 검색

Marketplace에서 Lombok을 검색 후 설치해줘야하는데

롬복이 안뜬다..?

 

찾아보니 인텔리제이 2020.03 이후 버전에는

롬ㅂ고이 자체 내장돼서 별도로 설치할 필요가 없다고 한다.

installed로 들어와보니 알아서 설치가 돼있었다. 

ㄱㅇㄷ👍

 


 

다음 DTO 리팩터링이다.

 

생성자와 toString 메소드 쓰기 귀찮은 경우

둘 다 지워버리고 위에다가 아래 사진처럼 불러오면 된다.

저 @로 위의 긴 코드를 대체하는 것이다.

@AllArgsConstructor
@ToString

 


 

롬복으로 간추린 코드가 잘 작동하는지 확인하기 위해서

서버 재실행 후 브라우저에 접속한다.

localhost:8080/article/new

 

Title 입력창에 Lombok, Contents 입력창에 12345를 입력하니

서버에서 잘 출력되는 걸 확인할 수 있다.

 

DB에도 잘 저장됐는 지 확인해야하는데,

localhost:8080/h2-console

로 접속해서 조회하면 데이터가 DB에 제대로 저장된 걸 확인할 수 있다.

 

이 때 서버를 재실행했다면 JDBC 주소를 

현재 서버 주소로 변경해줘야 접속이 가능하다.

 

 


 

다음으로 Entity도 리펙토링해줄건데,

entity의 Article 파일에 들어간다.

 

생성자와 toString 메소드를 지워주고

아래 어노테이션을 입력해주면 된다.

@AllArgsConstructor
@ToString

 


 

다음은 리펙토링 대상은 Controller다.

지난번에 데이터 확인을 위해 println을 사용했는데,

실제 서버에서는 이렇게 하면 절대 안된다.

 

println으로 확인을 하는 게 기록에 남지도 않을 뿐더러,

서버 성능에도 상당한 악영향을 준다.

 

대신 Logging 기능을 사용하는데,

로깅은 차량의 블랙박스와같이 기록하는 기능이다.

 

로깅은 아래 화면과 같이

@Slf4j

어노테이션을 입력해서 사용한다.

 

다음으로 pringln을 주석처리한 부분에

log.info(); 안에 출력하길 원하는 값을 넣으면 된다.

log.info();

 

이제 서버를 재실행해서 데이터를 입력해보면

서버와 DB 모두 정상적으로 데이터가 저장된 것을 볼 수 있다.

 

로깅으로 했을 때 서버에서 println으로 했을 때보다

더 자세한 정보가 기록되는 것도 확인할 수 있다.

 

끝👍