결정을 내릴 때 고려해야 할 주요 요소는 Nullability 이다.
| DB 컬럼 | java entity 타입 |
| NOT NULL | 원시 타입( int )를 사용하는 것이 간단하고 효과적 |
| NULL 값을 허용 | null 처리와 관련된 버그를 피하기 위해 Integer를 사용 |
int: null 값을 가질 수 없으며, 초기화되지 않으면 기본값은 0입니다.
Integer: null 값을 가질 수 있습니다.
원시 타입과 래퍼 클래스 사이에서 선택할 때 고려해야 할 몇 가지 중요한 사항들
Overhead
int: 원시 타입이기 때문에 메모리 및 성능 면에서 추가적인 오버헤드가 없습니다.
Integer: 객체이므로 추가적인 메모리 및 성능 오버헤드가 있을 수 있습니다.
Boxing and Unboxing
자바에서는 원시 타입과 래퍼 타입 간에 자동 변환 (오토 박싱 및 언박싱)이 발생합니다. 이는 런타임에 약간의 성능 저하를 초래할 수 있습니다.
엔터티 변경 감지
JPA와 같은 ORM에서는 엔터티의 변경을 감지하기 위해 필드 값의 변경을 추적합니다. Integer와 같은 래퍼 타입의 경우, 두 개의 객체가 동일한 값을 가지더라도 다른 객체로 인식될 수 있어서 변경 감지에 영향을 줄 수 있습니다.
'Spring > DB연동' 카테고리의 다른 글
| jpa에서 update (0) | 2025.03.29 |
|---|---|
| @Transactional 01 (0) | 2025.02.23 |
| JPA Entity에 Validation (0) | 2025.02.22 |
| Entity클래스 어노테이션 (0) | 2025.02.20 |
| JPA Entity 관련 01 (0) | 2025.01.17 |