Java/Java 기본

[간단] id 의 타입을 long 이 아니라 굳이 Long 으로 주는 이유

김관현 2024. 8. 19. 23:58

 

@Data
public class Member {

    private Long id;
    private String name;
    private int age;
}

 

우리가 자주 마주하는 코드들이다

 

그런데 우리가 자주 보는 이 코드들이 항상 id 값(보통 PK) 의 타입을 long 이 아니라 Long 으로 주는 것을 알 수 있다

 

왜 굳이 Wrapper 클래스인 Long을 사용하는 걸까

 

그에 대한 이유는 null을 사용할 수 있기 때문이다

 

만약 id 필드의 타입을 long 타입으로 설정한 경우 id 의 default value 는 0이 된다

id 의 기본값이 0 이라는 것은 문제를 초래한다

id 에 '값을 선언하지 않아서 0인 경우''값을 0으로 선언한 경우' 를 구분할 수 없게 된다

 

하지만 Wrapper 타입을 사용하게 되면(Long 타입을 사용하게 되면) 값을 선언하지 않은 경우에는 null 값이 들어가있으므로 값을 선언하지 않은 경우와 0을 선언한 경우를 구분할 수 있게 된다

 

결론은,

null 값과 0을 구분해야 하는 경우는 Wrapper 클래스로 선언하자