작성
·
58
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예
[질문 내용]
안녕하세요. 스프링 강의를 잘 듣고 있는 사람입니다. 회원 만들기 예제1을 따라 만들던 도중 궁금한 점이 생겨 문의 드립니다. 문의 사항은 아래와 같습니다.
Member 클래스를 만들때 Member를 Entity라고 표현을 하시고 클래스 다이어그램에선 Member에 대한 내용이 없어서 이 부분이 궁금합니다. 각 클래스마다 Member를 따로 객체로 생성하지 않고 main문에서 member 객체를 생성하기에 클래스 다이어그램에 들어가진 않은거 같은데, 이 Member 클래스를 왜 Entity라고 표현하시는지 궁금합니다.
MemberRepository를 구현하는 MemoryMemberRepository의 해쉬맵의 put을 보면 Long 타입 하나와 Member 하나를 저장할 수 있는 해쉬맵인데요, 근데 Member엔 이미 ID를 저장할 수 있는 private Long id가 있고 main문에서 객체를 생성할때 값을 집어 넣어주는데, 굳이 Member.getId()를 통해 Id 값을 저장해주었는지가 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 먼저 질문 주셔서 감사합니다.
회원 관련 예제를 진행하시면서 Member 클래스와 HashMap의 사용에 대한 궁금증이 있으신 것 같습니다. 아래에서 각 질문에 대해 답변드리겠습니다.
Entity 표현에 대해: Member 클래스를 ‘Entity’라고 부르는 이유는 데이터베이스 테이블과 매핑되는 객체라는 의미입니다. 스프링 환경에서 Entity는 주로 JPA(Java Persistence API)나 다른 데이터베이스 연동 기술에서 사용하는 용어입니다. 즉, Member라는 클래스는 데이터베이스의 테이블 구조와 일치하거나 대응되는 객체로 사용된다고 보실 수 있습니다. 따라서 데이터베이스 테이블에 저장될 수 있는 객체의 속성을 정의하기 위해 사용됩니다.
HashMap 사용과 ID 저장에 대해: MemoryMemberRepository에서 사용한 HashMap은 저장소 역할을 하여, Member 객체를 메모리에 보관하는 용도로 사용됩니다. 여기에서 키(key)는 Long 타입의 ID로, 값(value)은 Member 객체로 구성됩니다. 이 구조는 데이터 조회를 효율적으로 하기 위함입니다. Member 객체의 ID는 그 객체를 고유하게 식별할 수 있는 값이므로, 키값으로 활용하여 조회 속도를 높일 수 있습니다. 이렇게 하면 특정 ID를 가진 Member 객체를 즉시 조회할 수 있는 장점이 있습니다. ID는 단순히 객체 내부에만 저장되는 것이 아니라, 데이터 관리를 위한 키로 사용됩니다.
이와 관련하여 다른 분의 질문과 답변을 참고하시면 더 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.