티스토리 뷰
int
(원시 타입)과 Integer
(래퍼 클래스) 사이에서 선택할 때 고려해야 할 몇 가지 중요한 차이점이 있습니다:
- Nullability:
int
: null 값을 가질 수 없으며, 초기화되지 않으면 기본값은 0입니다.Integer
: null 값을 가질 수 있습니다.
Integer
를 사용하는 것이 적절합니다. 이렇게 하면 Java 코드 내에서 null 값을 제대로 처리할 수 있습니다. - Overhead:
int
: 원시 타입이기 때문에 메모리 및 성능 면에서 추가적인 오버헤드가 없습니다.Integer
: 객체이므로 추가적인 메모리 및 성능 오버헤드가 있을 수 있습니다.
- Boxing and Unboxing:
- 자바에서는 원시 타입과 래퍼 타입 간에 자동 변환 (오토 박싱 및 언박싱)이 발생합니다. 이는 런타임에 약간의 성능 저하를 초래할 수 있습니다.
- 엔터티 변경 감지:
- JPA와 같은 ORM에서는 엔터티의 변경을 감지하기 위해 필드 값의 변경을 추적합니다.
Integer
와 같은 래퍼 타입의 경우, 두 개의 객체가 동일한 값을 가지더라도 다른 객체로 인식될 수 있어서 변경 감지에 영향을 줄 수 있습니다.
- JPA와 같은 ORM에서는 엔터티의 변경을 감지하기 위해 필드 값의 변경을 추적합니다.
결정을 내릴 때 고려해야 할 주요 요소는 nullability입니다. DB 컬럼이 NOT NULL 제약 조건이 있는 경우 원시 타입 int
를 사용하는 것이 간단하고 효과적일 수 있습니다. 그러나 NULL 값을 허용해야 하는 경우, null 처리와 관련된 버그를 피하기 위해 Integer
를 사용하는 것이 좋습니다.
'Chat GPT Log' 카테고리의 다른 글
PostgreSQL 백업 전략 (0) | 2023.09.27 |
---|---|
SOLID 원칙 중 리스코프 치환 법칙을 알기 쉽게 설명해줘 (0) | 2023.08.04 |
세마포어를 쓰면 자원 공유 문제가 해결이 안 되지 않나? (0) | 2023.08.03 |
crontab 실행할때 실행 유저는 (0) | 2023.07.17 |
SSL 인증서에서 PEM 과 PKCS#12 차이점 (0) | 2023.04.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크