null
값 표현 가능:
null
값을 가질 수 있다는 점입니다. long
같은 기본 타입은 null
을 가질 수 없고, 값이 할당되지 않으면 기본값인 0
을 가져요.Long
타입을 사용하면 ID 필드에 null
을 할당하여 "아직 ID가 부여되지 않은 새 객체"라는 상태를 명확하게 표현할 수 있습니다.long
타입을 사용하면, 새로 만든 객체의 ID가 0
이 되는데, 만약 데이터베이스에서 0
을 유효한 ID로 사용한다면(그럴 일은 거의 없지만), 새 객체인지 아니면 ID가 0인 기존 객체인지 구분하기 모호해질 수 있어요. null
은 "값이 없음"을 명확히 나타냅니다.null
ID를 통해 더 유연하게 처리할 수 있기 때문이기도 합니다.Integer
(int의 래퍼 클래스) 대신 Long
(long의 래퍼 클래스)을 사용하는 이유는 표현할 수 있는 숫자의 범위 때문입니다.Integer
는 약 -21억부터 +21억까지 표현할 수 있지만, Long
은 훨씬 더 큰 범위(약 −9×1018 부터 +9×1018)를 가집니다.Integer
의 범위를 넘어설 가능성이 있습니다. Long
타입을 사용하면 ID 고갈에 대한 걱정을 거의 할 필요가 없어져서, 시스템의 확장성 측면에서 더 안전한 선택입니다.요약하자면, Entity의 ID 필드에 Long
타입을 사용하는 주된 이유는 아직 저장되지 않은 객체의 상태를 null
로 명확히 표현할 수 있고, 매우 큰 ID 값까지 수용할 수 있어 시스템 확장성에 유리하기 때문입니다.