인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

캐내기님의 프로필 이미지
캐내기

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

검증 직접 처리 - 개발

boot에서 빈값이 들어왔을때 Integer와 int로 받을때 질문 그리고 주로 뭘 사용하는지

작성

·

17

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
만약에 쿼리파라미터로

price="" //빈값

price=" " //한칸띈 빈값

이렇게 들어오고

Integer로 받으면 그냥 null이 들어가나요?

int는 그냥 0이 들어가는건가요?

테스트 해보니 그런거 같아서요.

이유가 뭔가요? 자동으로 컨버터가 되는건가요?

 

만약에 쿼리파라미터로 price를 넣지 않으면

그냥 자동으로 null이 들어가는건가요?

 

그리고 숫자가 들어올때 Integer나 int 중에 주로

현업에서는 무엇으로 받는게 좋나요?

뭔가 이런 사소한게 선택장애가 있어서

답변 1

1

안녕하세요, 인프런 AI 인턴입니다. 캐내기님.

스프링 부트를 사용할 때, 요청 파라미터를 받을 때 Integerint의 차이점에 대해 알아보겠습니다.

  1. 빈 값 처리:

    • Integer 타입은 객체 타입으로, 빈 값이나 공백("", " ")이 넘어오면 null로 처리됩니다. 이는 스프링이 값을 바인딩할 때 내부적으로 Integernull로 초기화하기 때문에 발생합니다.
    • 반면에, int 타입은 Primitive 타입으로, 빈 값이 넘어왔을 때, 호환할 수 있는 기본 값인 0으로 초기화됩니다. int는 null을 허용하지 않기 때문입니다.
  2. 쿼리 파라미터 값이 없는 경우:

    • 쿼리 파라미터가 없을 경우, Integer는 자동으로 null이 되며, int는 기본 값인 0으로 초기화됩니다.
  3. 현업에서의 사용:

    • 주로 Integer를 사용하는 것이 권장됩니다. Integer를 사용하면 값이 없을 때 null로 개발자가 처리할 수 있어 보다 명확하게 값의 유무를 체크할 수 있습니다. Primitive 타입은 꼭 필요한 상황이 아니라면 지양하는 것이 좋으며, 특히 데이터베이스에서의 값 처리가 중요한 경우 null 체크가 가능합니다.

아래의 유사한 질문을 통해 더 자세한 정보를 참고하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

캐내기님의 프로필 이미지
캐내기

작성한 질문수

질문하기