inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모르면 승진 안되는 시스템 디자인

채팅(Chatting) 시스템

채팅 시스템 key value 관련 질문이 있습니다!

해결된 질문

277

이재영

작성한 질문수 2

0

우선 정말 좋은 강의 제작해 주셔서 감사합니다!

채팅 시스템 관련 강의 약 19분 경에 나온 데이터 모델 설계에 대해 궁금한 점이 있습니다.

DynamoDB와 같은 key-value 저장소를 기반으로 1:1 채팅을 구현할 때, pk(key)message_id 로 설정해주셨는데요.

사용자가 로그인하여 사용자 식별자(user_id)를 얻었을 때, 이 user_id를 이용해 어떻게 관련 message_id들을 조회할 수 있을지 머릿속으로 잘 그려지지 않는데 혹시 이에 대해 좀 더 설명해주시면 정말 감사하겠습니다!!

제 생각으로는 GSI를 활용해 user_id를 별도의 키로 설정하거나, 다른 형태의 추가 키가 필요할 것 같아보여서요
아니면 혹시 이 key-value 저장소가 임시 저장 용도로만 사용되는 건가요?

소프트웨어-설계 시스템-디자인 소프트웨어-공학

답변 1

0

freeaion

구현하시는 시스템의 요구 사항에 따라 많은 것이 달라집니다. 강의에서 가정하는 시스템은 1:1 chat을 가정한 것으로 일단 사용자 인증이 끝나면 별다른 보안 사항을 고려하지 않고 디자인 되어 있습니다. (강의 마지막에 보안 관련한 논의가 필요하다고 명시되어 있습니다.) user id는 로그인 때만 사용되고, 일단 채팅이 열리면 message_id를 가지고 채팅방 메시지를 관리한다고 이해하시면 됩니다. 특정 user와 채팅방, 그리고 메시지의 연관성은 고려되지 않고 단지 채팅 메시지만 주고 받는 것을 가정하여 시스템이 디자인된 것입니다.

모든 요구 사항에 맞는 시스템을 이 강의에서 디자인하거나, 일일이 답변 드리기 어려운 점 양해부탁드립니다.

실제 FK제약조건을 설정하지 않는이유

0

16

1

BCNF 질문

0

44

2

레이어드 아키텍처에서 도메인 중심 패키지 구조를 적용하거나 변화하는 시점이 있을까요?

1

37

2

연관 엔티티 네이밍 규칙

0

36

1

6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민

0

36

2

히스토리 관련 질문

0

51

2

진짜 강의 듣는거 너무 고문

0

107

1

다형성 개념 문의

1

58

3

자료 한번에 다운로드 받을 수 있게 좀 해주세요.

1

61

2

통계 데이터 수정 질문

1

60

2

28강 sql 파일 어딨나여?

0

76

1

특별 학습 자료 프로모션 1년 멤버십 제공 관련 문의 드립니다.

0

56

2

tryMove(..) 메서드 ArrayIndexOutOfBoundsException 제보

1

60

2

2NF의 엄밀한 정의

0

64

1

공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?

0

132

2

DELETE -> SELECT 질문 드립니다.

0

46

1

websocket 연결 질문

0

61

1

채팅 시스템 메시지 플로어 질문드립니다

0

78

1

시니어엔지니어 지원

0

93

1

시스템 디자인 2권이나 머신러닝에 대한 계획

0

150

1

강의자료 어디서 받나요?

0

117

1

화면이 보이는 강의가 있고 안보이는 강의가 있어요?

1

209

2

수정사항 제보

1

224

3

강의 계획 관련

2

356

2