린디터
동네생활연구소
린디터

공지사항

전체 방문자
오늘
어제
  • 분류 전체보기 (90)
    • 부천 (10)
      • 부천24시,심야 (6)
      • 민원,행정 (4)
      • 생활 꿀팁 (0)
      • 교통,주차 (0)
    • 개발 (33)
      • Spring (12)
      • JPA (4)
      • JAVA (4)
      • Python (6)
      • Docker (1)
      • Error (3)
      • Spring Cloud로 개발하는 MSA (1)
      • 후기 (2)
    • 알고리즘 (32)
    • 자료구조 (5)
    • 컴퓨터 개론 (3)
    • 개인 프로젝트 (4)
      • 쇼핑몰 만들기 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 부천응급실
  • BOJ
  • 파워자바
  • 스프링부트
  • 코딩테스트연습
  • 부천공휴일병원
  • gradle
  • 백준
  • 알고리즘
  • 프로그래머스
  • 동적계획법
  • 코딩테스트
  • 부천심야약국
  • Intellij
  • 부천연휴약국
  • springboot
  • 취준
  • 부천공휴일약국
  • JPA
  • dp
  • 다이나믹 프로그래밍
  • 자료구조
  • inflearn
  • 다이나믹프로그래밍
  • 구현
  • 파이썬
  • python
  • 부천공공심야약국
  • Spring
  • 부천소아응급실

최근 댓글

최근 글

티스토리

반응형
250x250
hELLO · Designed By 정상우.
린디터

동네생활연구소

[SpringBoot] lombok
개발/JAVA

[SpringBoot] lombok

2022. 5. 22. 19:37
반응형

롬복

롬복은 자바 개발할 때 자주 사용하는 Getter, Setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해 줍니다.

DTO와 같이 자주 변경되는 클래스의 경우 멤버 변수가 추가되거나 없어질 때마다 Getter, Setter, 생성자 등을 수정해줘야 하는 경우가 발생합니다. 이러한 경우에도 Lombok을 이용하면 단순히 프로퍼티를 추가하고 삭제하는 것만으로도 충분합니다.

더 자세한 설명을 원한다면 https://www.korecmblog.com/lombok/ 를 참고해주세요.

 


 

프로젝트에 lombok을 추가해보겠습니다.

build.gradle에 다음과 같은 코드를 추가해 줍니다.

gradle 5 이상인 분들은 저와 같이 작성해주시면 됩니다.

 

Refresh 해 주는 것도 잊지 맙시다.

 

라이브러리를 받았다면 플러그인을 설치해줍니다.

플러그인은 MarketPlace에서 lombok을 검색하여 설치해주면 됩니다.

저는 이미 플러그인이 설치되어 있기 때문에 Enable annotation processiong을 체크하는 것만 해주고 넘어가겠습니다.

 

앞에서 진행했던 코드를 롬복으로 변경하겠습니다.

먼저 dto 패키지를 추가하겠습니다. dto 패키지에 관한 설명은 나중에 따로 하겠습니다. 간단하게 설명하자면, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다.

 

dto 패키지에 HelloResponseDto 코드를 작성합니다.

 

@Getter : 선언된 모든 필드의 get 메서드를 생성합니다.

@RequiredArgsConstructor : 선언된 모든 final 필드가 포함된 생성자를 생성해줍니다.

 

롬복의 설명만 듣고는 살짝 감이 안 오셨을 수도 있는데 @Getter로 이해가 되실 거라 생각합니다.

자바로 개발을 할 때 private 변수에 접근을 하려면 따로 get이나 set 메서드를 작성해서 이용해야 했습니다. 하지만 이제 lombok을 사용하면 어노테이션 하나로 해결을 할 수 있는 것입니다.

 

이제 롬복이 잘 작동하는지 테스트 코드를 통해 알아보겠습니다.

코드는 다음과 같습니다.

@assertThat : 검증하고 싶은 대상을 메서드 인자로 받습니다.

@isEqualTo : assertThat에 있는 값과 isEqualTo의 값을 비교해서 같을 때에만 성공입니다.

 

저는 실행을 했더니 다음과 같은 에러가 발생했습니다. 

이 에러는 메서드 명이 한글이라 발생한 에러입니다.

이 에러를 해결하기 위해서는  settings -> build, execution, deployment -> gradle에서 Run tests using을 IntelliJ IDEA로 바꿔주면 해결이 가능합니다.

 

에러 해결 후 정상적으로 작동함을 확인할 수 있었습니다. 롬복의 기능이 문제없이 작동되는 것입니다.

 


 

이제 앞서 만든 HelloController에도 적용해보겠습니다.

 

@RequestParam : 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션입니다.

name과 amount는 API를 호출하는 곳에서 넘겨준 값들입니다. 

 

@Param : API 테스트를 할 때 사용될 요청 파라미터를 설정합니다. 값은 String만 허용되기 때문에 다른 타입의 데이터는 문자열로 변경해야 사용 가능합니다.

@jsonPath : JSON 응답 값을 필드별로 검증할 수 있는 메서드입니다. $를 기준으로 필드명을 명시합니다.

 


참고 도서

https://book.naver.com/bookdb/book_detail.nhn?bid=15871738 

 

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다.경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현합니다. JPA와 JUNIT 테스트, 그레이들, 머스테치, 스프링

book.naver.com

 

반응형

'개발 > JAVA' 카테고리의 다른 글

POWER JAVA(파워 자바 개정3판) - 5장 클래스와 객체 II Mini Project  (0) 2022.04.10
POWER JAVA(파워 자바 개정 3판) - 4장 클래스와 객체 I Mini Project  (0) 2022.04.10
명품 자바 에센셜 2장 실습 문제  (0) 2022.04.03
    '개발/JAVA' 카테고리의 다른 글
    • POWER JAVA(파워 자바 개정3판) - 5장 클래스와 객체 II Mini Project
    • POWER JAVA(파워 자바 개정 3판) - 4장 클래스와 객체 I Mini Project
    • 명품 자바 에센셜 2장 실습 문제
    린디터
    린디터

    티스토리툴바