개념
final 키워드는 변경 불가능, 즉 불변성(immutability)을 나타내는 키워드입니다.
final 키워드가 적용된 [ 변수, 메서드, 클래스 ]는 반드시 초기화되어야 하며, 이후에는 값을 변경할 수 없습니다. 따라서 Null을 방지하고, 중간에 실수로 값이 변경하는 일이 불가능하기 때문에 안전성이 증가합니다.
주의점
Java에서 final 키워드가 적용된 필드는 선언과 동시에 초기화 하거나, 생성자에서 초기화해야 합니다. 그렇지 않으면 컴파일러가 미리 에러( might not have been initialize )를 발생시킵니다.
Spring DI와의 관계
오직 생성자 DI(Constructor DI)만이 final 키워드를 사용할 수 있습니다. 그 이유는 주의점에서 말한 것처럼, final은 선언과 초기화를 동시에 동시에 진행해야 하기 때문입니다.
나머지 DI 방법들(필드, 수정자 DI)은 객체가 생성된 후에 주입이 진행되기 때문에 초기화를 진행하지 않습니다. 그로 인해 final 키워드로 인해 위에서 설명한 컴파일 에러가 발생합니다.
End.
'CS' 카테고리의 다른 글
| 프로젝트 패키지 구조 (0) | 2025.09.17 |
|---|---|
| DI의 종류와 Constructor DI가 권장되는 이유 (4) | 2025.06.14 |
| 실수계산 오차와 부동소수점 ( feat. IEEE 754 표준 ) 3부 (0) | 2025.05.21 |
| 실수계산 오차와 부동소수점 ( feat. IEEE 754 표준 ) 2부 (0) | 2025.05.16 |
| URI vs URL vs URN (0) | 2025.04.14 |