-
5. 스프링부트와 AWS - 롬복 활용하기실습/AWS 2021. 4. 28. 01:08
앞서 4번에서는 롬복을 설치해봤다.
그럼 이번에는 이 롬복을 이용해서 기존에 작성한 HelloController 클래스를 변경해볼 예정이다.
1. DTO 폴더 생성 및 DTO 클래스 생성
우선 롬복을 사용하기 위해서는 DTO 클래스가 필요하다.
기존에 만든 controller 패키지 안에 dto 패키지를 생성해준다.
dto 패키지 내에 'HelloResponseDto'라는 이름의 클래스를 생성한다.
2. 어노테이션 입력하기
위처럼 클래스를 생성하고 상단에 '@Getter', '@RequiredArgsConstructor' 어노테이션을 입력한다.
어노테이션 등록시 단어를 조금만 입력해도 인텔리제이가 자동완성 시켜주므로 이를 이용하자.
어노테이션 입력시 위와 같은 화면이 된다.
어노테이션을 입력하고 'name', 'amount' 멤버 변수를 추가해준다.
참고로 위 어노테이션의 의미는 다음과 같다.
@Getter:
클래스 내 선언된 모든 멤버 변수의 Get메서드를 생성해준다.
@RequiredArgsConstructor:
클래스 내에서 final을 가진 모든 멤버 변수를 포함한 생성자를 생성해준다.
이때 final를 포함하지 않은 멤버 변수를 생성자에 포함되지 않는다.
3. 어노테이션 테스트하기
이번에는 'Test' 패키지의 'controller' 패키지 안에 'dto' 패키지를 생성한다.
그 뒤에 안에 'HelloResponseDtoTest' 클래스를 생성한다.
해당 클래스 내에 테스트 코드를 입력한다.
해당 코드를 보면 알겠지만 HelloResponseDto 클래스를 만들 때 생성자를 따로 만들지 않고 어노테이션만 표시했음에도 생성자가 완성된 것을 볼 수 있다.
'assertThat'은 'assertj'라는 라이브러리의 메서드다.
검증하고 싶은 대상을 메서드 인자로 받을 수 있다.
위에서는 HelloResponseDto의 객체인 dto의 name, amount 멤버 변수를 불러와 우리가 상단에 쓴 name, amount와 동일한지 체크하는 역할을 한다.
이제 위와 같은 코드를 입력하고 테스트를 하면 아래와 같은 결과를 얻을 수 있다.
에러가 뜬다...왜 그럴까?
4. gradle 버전 변경
이전까진 언급하지 않았는데...사실 이건 책 도입부에 써있는거라 이렇게 복습함에도 잊고 넘어갔었다....
여튼 이는 왜그러냐면 현재 진행하는 테스트와 gradle의 버전이 맞지 않아서 그렇다.
참고로 책의 개발 환경은 gradle 4.8이고...내껀 훨씬 상위 버전이라 강제로 다운그레이드 시켜야 한다.
다운 그레이드를 시켜주는 것은 다음과 같다.
alt + F12를 누른다.
그 다음 "gradlew wrapper --gradle-version 4.10.2"를 입력해준다.
만약 해당 빌드에 성공하면 위와 같은 메시지를 볼 수 있다.
제대로 변경된 것을 확인해보고 싶다면 'gradle - wrapper - gradle-wrapper.properties'를 누르면 아까와 달리 gradle버전이 바뀐 것을 볼 수 있다.
이제 다시 'HelloResponseDto'클래스로 돌아가 테스트하면 위와 같이 테스트 성공함을 확인할 수 있다.
'실습 > AWS' 카테고리의 다른 글
7. 스프링부트와 AWS - ORM&JPA 필요성 (0) 2021.04.28 6. 스프링부트와 AWS - 롬복 활용하기 2 (0) 2021.04.28 4. 스프링부트와 AWS - 롬복 설치하기 (0) 2021.04.27 3. 스프링부트와 AWS - 테스트 코드 작성해보기 (0) 2021.04.08 2. 스프링부트와 AWS - 인텔리제이로 깃허브 연동하기 (0) 2021.04.08