record 적용 배경
JAVA14 버전부터 포함된 record를 새롭게 시작한 프로젝트에서 JAVA 17을 사용하면서 사용하게 되었습니다.
JAVA 17을 사용한다고 처음부터 사용했던 것은 아니지만 JAVA 17을 사용하는 김에 잘 활용하기 위해
기존 버전이었던 11부터 17까지의 새로운 기능들을 확인하고 적용하게 되었습니다.
새롭게 시작한 프로젝트는 BFF 프로젝트로 내부 서비스로부터 복잡한 응답 모델을 가져와서 가공 후 FE에 보여주게 되는데
복잡한 내부 서비스의 응답 모델과 FE에 내려주는 응답 모델을 record를 사용하기 적절했습니다.
record 장점
- 필드 선언을 메서드 파라미터 처럼 하고 대부분의 lombok 어노테이션을 사용하지 않아도 되어 코드 라인수가 1/3 수준이 된다.
- record에서 다 처리해주기 때문에 toString, equals, hashcode에 대한 걱정을 할 필요가 없다.
- getter를 getFoo()가 아닌 foo() 형태로 예쁘게 사용할 수 있다.
intellij로 변환하기
intellij에서 기본적으로 record로 변환하기 적절한 class에 대해 record로 변환하기를 추천하고 변환을 해 주는 기능을 제공합니다.
기존 class에 대해 아래와 같은 절차를 밟으면 됩니다.
- 모든 필드에 final 추가
- lombok을 사용하고 있었다면 @Getter를 제외한 모든 어노테이션 제거
- 여기까지 하면 클래스명에 record로 변환하기가 뜸
- Getter를 없애지 않는 이유는 기존 Getter들이 이하 과정에서 자연스럽게 변화되도록 하기 위함.
- 클래스명으로 커서 옮기고 record로 변환
- 불필요한 @Getter 어노테이션 제거
'제안&정리' 카테고리의 다른 글
[Spock] 쉽게 테스트 작성하기 (0) | 2023.08.27 |
---|---|
[Spring] 동일 클래스의 Async 호출하기 (0) | 2023.07.09 |
2023 AWS Summit Seoul Session Review (Day1) (0) | 2023.05.05 |
[AWS] EB에서 인스턴스 분리하기 (1) | 2023.04.03 |
[JAVA] Integer 변수를 null 안전하게 0과 비교하기 (0) | 2023.03.13 |