728x90
본 글은 @RequestParam을 사용할 때 파라미터를 final로 선언하는 이유에 대해서 공부한 지식을 정리한 글입니다.
처음 원본 코드는 위와 같이 user_id를 매개변수로 받을 때 final로 선언하지 않았습니다. 그런데 코드리뷰를 받다가, @RequestParam을 사용할 때 final로 선언하면 좋다고 조언을 해주셨습니다.
그 이유는 다음과 같습니다.
불변성 보장
- final 키워드를 사용하면 해당 파라미터는
메서드 내에서 값이 변경되지 않는다는 것을 보장합니다. - 이는 코드의 가독성을 높이고 버그를 방지하는 데 도움이 됩니다. 특히 멀티스레드 환경에서는 불변성이 중요한 역할을 할 수 있습니다.
코드 명확성
- 파라미터를 final로 선언하면 해당 파라미터는
메서드 내부에서 변경되지 않으므로, 코드의 의도를 명확히 할 수 있습니다. - 이는 코드를 읽는 다른 개발자들이 파라미터의 값을 변경하지 않겠다는 확신을 가질 수 있도록 도와줍니다.
분변 객체 패턴
- final 파라미터는 메서드 내에서 해당 객체가 불변임을 보장하므로, 불변 객체 패턴을 사용하는 데 도움이 됩니다.
- 불변 객체는
상태가 변경되지 않으므로, 예측 가능한 동작을 보장할 수 있습니다.
그러면 원래 코드는 위와 같이 final로 선언할 수 있습니다.
그러면 해당 객체(userId)는 불변성을 보장하기 때문에 final로 선언되어 있어 이 메서드 내에서 변경될 수 없습니다. 그런데 verifyUser 메서드 안에서 userId를 변경하려고 시도하면 위와 같이 에러가 발생합니다.
즉, 파라미터를 final로 선언하면 값이 변경되지 않음을 보장하여 코드의 안정성과 명확성을 높일 수 있다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2024.08.16 - 배포의 종류 (0) | 2024.08.16 |
---|---|
[TIL, 일일 회고] 2024.08.15 - CI/CD란 무엇일까❓ (0) | 2024.08.15 |
[TIL, 일일 회고] 2024.08.13 - @Builder(access=AccessLevel.PRIVATE) 옵션이란❓ (0) | 2024.08.13 |
[TIL, 일일 회고] 2024-08.11 - 캐싱 전략 (0) | 2024.08.12 |
[TIL, 일일 회고] 2024.08.11 - MapStruct의 편리함 (0) | 2024.08.11 |