inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

31강. 대출 기능 개발하기

UserLoanHistory Entity

76

비둘기

작성한 질문수 2

0

id를 할 때는 Entity에서 자료형 Long을 쓰고, user_id는 자료형 long을 쓰는데 왜 두 개 다른것을 쓰나요? 특별한 이유가 있을까요??

java spring aws mysql spring-boot jpa

답변 2

0

최태현

안녕하세요 비둘기님! 🙂 좋은 질문 감사합니다! 👍

Entity에 선언되는 id는 아직 DB에 저장하지 않았을 때 (즉, XXXRepository.save() 를 한 번도 호출하지 않았을 때) null이 들어갈 수 있으니 Long 으로 선언하였고요

userId 같은 필드는 특정 데이터가 생성될 때 반드시 존재해야 함으로 null이 들어가지 못하는 long 으로 선언했습니다.

public과 private, nullable과 non-nullable 처럼 프로그래밍을 할 때 open 해주는 범위를 최대한 닫아놓으면, 추후 유지보수성이 올라가기 때문에 위와 같은 선택을 했다고 봐주시면 될 것 같습니다.

감사합니다! 🙇

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

비둘기님께서 질문하신 엔티티에서 id 에는 Long 자료형을 사용하고, user_id에는 long 자료형을 사용하는 이유에 대해 설명드리겠습니다.

Longlong은 자바에서 자료형의 차이입니다.
- Long은 원시 자료형(long)인 long의 래퍼 클래스입니다. 이는 여러 유틸리티 메서드들을 제공하며, null 값을 가질 수 있습니다. 따라서 Long 타입은 널 값을 허용해야 할 때 주로 사용됩니다.
- 반면, long은 기본 원시 타입으로서 공간 효율성이 좋고 기본적으로 0의 초기값을 가집니다. 널 값을 저장할 수 없으므로 반드시 초기값이 필요합니다.

주로 데이터베이스와 상호작용할 때, 즉 엔티티의 식별자 필드는 보통 Long 타입을 준수합니다. 이는 JPA와 Hibernate에서 널 값을 처리할 수 있게 하여 다양한 데이터베이스 운용 시 유연성을 제공하기 위함입니다. 반면, 비즈니스 로직 내에서 Null을 용납하지 않는 경우, long을 사용하는 것이 더 적합할 수 있습니다.

이와 관련된 더 자세한 설명은 이전에 다룬 내용에서 확인할 수 있습니다. 비슷한 상황이 설명된 질문 및 답변 링크를 공유드리니 참고해 보시기 바랍니다:

위의 링크를 통해 질문하시고자 했던 내용의 맥락을 보다 명확하게 이해하시기를 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

패키지 구분에 대해 궁금한게 있습니다

0

29

2

리액트 관련 질문이 있습니다.

0

67

2

스프링부트 버전

0

83

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

64

2

33강. UserLoanHistory의 관계성에 대한 질문

1

57

2

Java JDK 버전 문의의 건

0

142

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

91

3

h2 console 접속했을 테이블 질문

1

70

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

83

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

90

2

여기까지 다 끝냈다고 하셨는데

0

83

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

55

1

spring 개념적인 질문

0

73

2

인텔리제이 샘플코드 실행 안됨 오류

0

150

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

90

1

마이그레이션 오류입니다.

0

179

3

Whitelabel Error Page 오류가 났습니다.

0

179

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

99

3

궁금한게 있습니다.

0

64

2

DTO 관련

0

72

2

궁금한게 있습니다!

0

73

2