Jeomxon's Tech Note

[Why?] id를 Long타입으로 사용하는 이유? 본문

Spring/Archive

[Why?] id를 Long타입으로 사용하는 이유?

저문(jeomxon) 2022. 7. 9. 17:28

엔티티 클래스에서 사용하는 id(자동으로 증가되는 등의 시퀀스), 즉 들어가는 id에 대해서 Long타입으로 쓰는 이유가 뭘까?

처음에는 그냥 int타입을 쓰면 되지 않나?하고 생각했는데 전혀 아니었다.

 

Wrapper Type인 Long을 쓰는 이유, 그것도 Integer가 아닌 굳이 Long을 쓰는 이유는 뭘까?

일단 int가 아니라 long을 쓰는 이유는 허용 범위가 더 크다는 점에서 추측을 할 수 있다.

하지만 왜 Wrapper Type을 사용하는지가 궁금했다.

일단 primitive Type에서는 기본 값이 0인데, 0이라는것이 실제로 id에 부여된 값이 0인지 아니면 값이 없다는 뜻인지 구분하기 어렵다.

하지만 Wrapper Type을 쓴다면 값이 없을 때는 null로 표시가 되기 때문에 primitive Type과 달리 값이 없을 때의 구분이 명확하다.

따라서 시퀀스가 들어가는 id값에는 Long타입을 주로 사용한다.