섹션6. '채팅메시지 저장' 강의에서 질문 있습니다
안녕하세요. 선생님
섹션6. '채팅메시지 저장' 강의에서 질문 있습니다.
7:50 부터 사용자별로 읽음 여부 저장을 구현하실때
chatParticipantRepository에서 chatRoom을 통해 participants list를 가져오도록 구현하셨는데 조금 다르게 하고 싶어서 질문 드립니다.
저희 엔티티 구성할때 ChatRoom entity에 <List>chatParticipants 필드를 만들었으니까 여기서 해당 채팅 룸의 participants를 가져와도 상관이 없을까요 ?
답변 2
1
답변이 조금 늦었습니다!!
맞아요 ChatRoom객체에서도 participants를 조회해올수 있으니 그렇게 가져오는게 더 간결하겠네요.
저는 소스코드 전반에 jpa에 익숙치 않으신분들을 위해 jpa활용을 자제하려고 했었습니다.
말씀하신대로 구현해도 전혀 문제 없을것 같습니다!!
1
안녕하세요, 인프런 AI 인턴입니다. 김태우님.
질문해 주신 내용에서, 채팅 메시지를 저장할 때 ‘읽음 여부’를 처리하는 로직을 개선하고자 하시는 것 같습니다. 먼저, ChatRoom 엔티티 내부에 이미 Participants 필드가 존재한다면, 그 필드를 통해 참여자 목록을 직접 가져오는 것이 가능합니다. 이렇게 하면 코드가 더욱 직관적일 수 있습니다. 아래에 관련된 개념을 설명해 드리겠습니다.
엔티티에서의 필드 사용:
- 일반적으로 JPA에서는 연관관계 매핑 필드를 사용하여 다른 엔티티와의 관계를 쉽게 관리할 수 있습니다.
ChatRoom엔티티에List<ChatParticipant>필드가 있다면, 이 필드를 통해 해당 채팅 룸의 모든 참여자를 가져오는 것이 가능합니다.
- 일반적으로 JPA에서는 연관관계 매핑 필드를 사용하여 다른 엔티티와의 관계를 쉽게 관리할 수 있습니다.
Fetch 타입:
- 이 경우 연관된 엔티티를 가져올 때 사용되는 Fetch 전략(FetchType.LAZY 또는 FetchType.EAGER)에 따라 데이터 로딩 방식이 달라집니다. 필요한 데이터만 가져오도록 Fetch 전략을 신중하게 선택하시길 바랍니다.
- 이 경우 연관된 엔티티를 가져올 때 사용되는 Fetch 전략(FetchType.LAZY 또는 FetchType.EAGER)에 따라 데이터 로딩 방식이 달라집니다. 필요한 데이터만 가져오도록 Fetch 전략을 신중하게 선택하시길 바랍니다.
성능 고려:
- 다만, 데이터를 가져오는 방식이 채팅 시스템의 성능에 영향을 미칠 수 있습니다. 참여자 수가 많을 경우에는
chatParticipantRepository를 통해 필요한 참여자만 가져오는 것이 성능상 유리할 수 있습니다.
- 다만, 데이터를 가져오는 방식이 채팅 시스템의 성능에 영향을 미칠 수 있습니다. 참여자 수가 많을 경우에는
아래 유사한 질문과 답변 링크를 통해 더 많은 정보를 얻어보시기 바랍니다:
- Entities와 Fetch 전략 사용법 - 엔티티에서 연관관계 관리를 위한 다양한 기법들에 대한 토론
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
ERD 질문
0
54
2
StompHandler 관한 질문
0
80
2
리프레시 토큰은 알아서 구현하면 되는건가요??
0
79
2
cors, csrf 직접 구현
0
64
1
JWT 필터구현
0
97
2
강의 잘듣고 있습니다. 혹시 다음 강의 계획은 없으신가요?
0
57
1
STOMP 동작 과정 질문
0
48
1
chain.doFilter()
0
45
1
자바 21로 소스 작성해도 되나요?
0
60
2
메시지 브로커 선택에 관한 질문
0
65
2
WebSocket과 Spring Security 질문
0
81
2
추가 커스텀 구현 질문 있습니다.
0
59
2
connect와 동시에 구독하는데 구독 검증이 꼭 필요한가요?
0
97
2
저도 동일한 질문인데
0
78
3
token이 필요한 엔드포인트에 의도적으로 토큰 누락시 대처
0
67
2
수업자료가 왜 다 나눠져있나요?
0
78
2
메시지 전송 시 검증
0
61
2
JWT 생성 시 subject 설정에 대한 질문
0
157
3
StompHandler 질문 있습니다.
0
82
2
앱 서비스일 경우
0
83
2
웹소켓 서버 재배포시 고려해야 할 상황 질문
0
107
2
배포 오류 질문
0
123
2
/connect 경로에 대한 토큰 검증의 필요성
0
77
1
JwtTokenProvider 작성중 오류 발생으로 문의드립니다.
0
96
2





