[스프링부트] 4장 롬복과 리팩터링

May29·2023년 11월 22일
post-thumbnail

목표는 완독 🫠


1. 롬복이란 (138p)

  • 롬복(lombok) : 코드를 간소화해 주는 라이브러리로 필수 코드를 간편하게 작성할 수 있다
  • 로깅(logging) : 프로그램의 수행 과정을 기록을 남기는 것을 말하는데 일종의 자동차 블랙박스와 같다
  • 리팩터링(refactoring) : 코드의 기능에는 변함이 없이 코드와 구조 또는 성능을 개선하는 작업을 말합니다



2. 롬복을 활용해 리팩터링하기

  • 2,3장에서 실습했던 코드를 롬복을 활용해 늘어진 코드를 간소화하고
  • println()문을 로깅으로 변환해 보겠다

2-1. 롬복 설치하기 (139 ~ 140p)

  • build.gradle 에 롬복을 추가한다
  • dependenciesdp 스프링부트 프로젝트 만들 때 추가한 web 도구와 mustache, jpa, h2database를 확인할 수 있다
  • 롬복도 여기에 추가한다
  • comileOnly..., annotationProcessor로 시작하는 코드를 작성한다
  • 편집기에 나타난 코끼리 모양의 새로 고침 아이콘을 클릭해 롬복 관련 라이브러리를 다운로드한다
  • 근데 나는 코끼리가 안보여서 단축키 Ctrl+Shift+O 로 다운로드했다
  • 다운로드가 끝난 후 오른쪽에 Gradle 탭을 클릭하면 롬복이 포함된 것을 확인할 수 있다

2-2. DTO 리팩터링하기 (141 ~ 143p)

  • 프로젝트 탐색기에서 com.example.파일명>dto>ArticleForm에서
  • ArticleForm() 생성자와 toString() 메서드를 리팩터링한다
  • ArticleForm()
    • ArticleForm() 생성자 코드 전체를 지운다
    • ArticleForm 클래스 위에 @AllArgsConstructor 어노테이션을 추가한다
    • 이렇게하면 title과 content를 매개변수로 하는 생성자가 자동으로 만들어진다
    • 이전의 생성자 코드 4줄이 1줄로 대체되는 것이다
  • toString()
    • toString() 메서드 코드 전체를 지운다
    • @ToString 어노테이션을 추가한다
    • 이렇게 하면 toString() 메서드를 사용하는 것과 같은 효과가 난다
  • 제대로 작동되는지 확인 : localhost:8080/articles/new
  • 제목과 내용 입력하고 Submit을 하고 인텔리제이 Run 탭에서 결과가 출력이 되는지 확인
  • DB에도 잘 들어갔는지 확인 : localhost:8080/h2-console
  • JDBC URL은 서버를 켤 때마다 바뀌니 새로 입력해 줘야 한다 (Run 탭에서 jdbc를 찾는다)
  • DB에 접속해 ARTICLE 테이블을 실행해 보면 데이터가 잘 저장된 것을 확인할 수 있다

2-3. 엔티티 리팩터링하기 (144p)

  • 프로젝트 탐색기에서 com.example.firstproject>entity>Article에서
  • Article() 생성자와 toString() 메서드를 리택터링한다
  • Article()
    • Article() 생성자 코드 전체를 지운다
    • ArticleForm 클래스 위에 @AllArgsConstructor 어노테이션을 추가한다
    • id, title, content를 매개변수로 하는 생성자가 자동으로 만들어진다
  • toString()
    • toString() 메서드 코드 전체를 지운다
    • ArticleForm 클래스 위에 @ToString 어노테이션을 추가한다

2-4. 컨트롤러에 로그 남기기 (145 ~ 147p)

  • 지금까지 println()으로 입력받은 데이터를 확인했다
  • 하지만 실제 서버에서는 이렇게 하면 안된다
  • 왜냐하면 기록에 남지 않을뿐더러 서버의 서버의 성능에도 악역향을 끼친다
  • 대신 println()을 사용하지 않고 로깅을 사용한다
  • 로깅은 자동차의 블랙박스와 같다
  • 블랙박스처럼 로깅도 서버에서 일어나는 일을 모두 기록한다
  • src>com.example.firstproject>controller>ArticleController
  • ArticleController 클래스 위에 @Slf4j 어노테이션을 추가한다
  • Slf4j (Simple Logging Facade for Java)가 로깅을 사용할 수 있게 한다
  • 그리고 아래와 같이 수정한다
  • log가 빨간색으로 오류가 나올 수 있는데 lombok 플러그인을 설치해야 한다
  • 제대로 작동하는지 확인 : localhost:8080/articles/new
  • 제목과 내용에 데이터를 입력하고 Submit을 누르고 인텔리제이 Run에서 로그가 찍힌 것을 확인한다
  • println() 문으로 확인했을 땐 뒷부분만 출력하지만
  • println()을 사용하면 바로 출력할 수 있지만 따로 찾을 수 없다
  • 로깅은 어떤 데이터가 언제 저장됐는지 시간 정보도 남아 있다

끝!! 🥳🥳

profile
안녕하세요 좋은날입니다

0개의 댓글