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으로 했을 때보다
더 자세한 정보가 기록되는 것도 확인할 수 있다.
끝👍
'Back > Spring' 카테고리의 다른 글
Day31_AJAX로 JSON 파일을 받아서 출력 후 DB에 저장 (0) | 2023.06.20 |
---|---|
Day24_CRUD jsp 완성 과제 (1) | 2023.06.15 |
Day17_#7_IntelliJ 스프링부트 JPA로 DB에 데이터 생성 (0) | 2023.06.01 |
Day12_#6_폼 데이터를 받아 Controller에서 확인 (0) | 2023.05.31 |
Day10_#5_IntelliJ 스프링부트 View Template 페이지에 레이아웃 나누기 (1) | 2023.05.30 |