entity에서 id값을 Long으로 지정하는 이유

2024. 2. 20. 10:15프레임워크(Framework)/Spring

 

스프링 강의를 듣던 중 id값을 int가 아닌 Long 타입으로 지정하는 이유가 궁금해서 정리해보려 한다.


 

id값을 int가 아닌 Long 타입으로 지정하는 이유에는 두 가지가 있다.

 

그 전에 알아야 할 것은 long과 Long에는 차이점이 있다는 것이다.

 

그 내용은 아래의 글을 참고하면 된다.

 

https://danii0110.tistory.com/171

 

[JAVA] Long과 long의 차이

Long과 long이란? long이란? long은 기본 데이터 유형(=원시 데이터 유형)이다. long을 사용할 때 주의할 점은 long 데이터 유형의 값 뒤에 'L'을 작성하여 long 값을 나타내주어야 한다. 그렇지 않으면 컴

danii0110.tistory.com

 


id값을 int가 아닌 Long 타입으로 지정하는 이유

 

1. null 사용 가능

 

id값을 int, long이 아닌 Long으로 지정하는 이유 첫 번째는 null을 사용할 수 있기 때문이다.

int, long 자료형 같은 경우 primitive type이기 때문에 null값을 가지지 못한다. primitive type은 기본값이 0이 되는데, id가 없을 때를 나타낼 수 없다.

하지만 Wrapper 클래스인 Integer, Long 타입은 null값을 가질 수 있다.

 

2. 숫자 범위가 넓기 때문

Long과 Integer 중에서 Long을 쓰는 이유 두 번째는 표현범위 때문이다.

Long이 Integer보다 월등히 많은 수를 표현할 수 있기 때문에 Long을 사용한다.

int 4바이트 -231 ~ (231 - 1)
-2,147,483,648 ~ 2,147,483,647
long 8바이트 -263 ~ (263 - 1)
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

 

 

물론 Integer의 범위로도 충분하다면 Integer을 사용해도 무방하다.