기록하는 블로그

[TIL] Final을 사용하자 본문

TIL

[TIL] Final을 사용하자

무모한 폴라베어 2021. 5. 11. 09:23

 

 

 

 

이 카테고리에는 짧게 배우거나 느낀 개발에 도움이 될만한 지식들을 기록하기로 했다. 약간 네이버 카페 같은 곳 보면 출석 체크 같이 짧은 글 올리는 그런 곳의 느낌을 담아서? 

 

 


public class MemberDto {
    
    private final String name;
    private final int amount;
    
    
    //......
	
    
    
}

 

 

자바에서 final 이란 키워드를 종종 본적이 있다. 당시 그 코드의 동작에는 큰 영향을 미치는 요소가 아니었기에 그냥 넘어갔는데 최근 개발 서적을 보면서 다시 찾아보게 되었다.

 

자바에서 final 을 사용하면 세 가지 효과를 얻을 수 있다.

 

 

1.  Immutable 하게 함으로써 데이터의 값을 보호해준다.

2. final 을 인식하는 라이브러리를 사용할 수 있다.

3. 코드의 가독성을 높인다. (검증되지 않았음)

 

 

토이 프로젝트를 만들 때 흔히 DTO 클래스를 만들 때 전역 변수에 final로 선언해준 것을 종종 본적 있는데 1번의 이유 때문인 것 같다. 따라서, Override(재정의) 하거나 상속하면 절대 안되는 경우에만 사용해야한다

 

2번의 경우 Spring에서 제공하는 Lombok 라이브러리의 @RequiredArgsConstructor 어노테이션이 final로 선언된 필드에 한해서 생성자를 만들어주기 때문에 Lombok을 사용한다면 final은 같이 사용하는 게 좋겠다.

 

 

3번은 검증하거나 주위에서 들은 의견은 아니지만 기존의 개발방식에서 주로 그렇게 사용되어왔기 때문에 관습을 따르는 것 정도라고 생각하면 될 것 같다.

 

 

 

오늘 이후로는 되도록이면 DTO 클래스 같은곳에서 바뀌지 않는 상수에는 무조건 final 필드로 선언할 계획이다.