항해99/TIL | WIL

2023.03.05 (56일)

태감새 2023. 3. 6. 01:54

Day 56


1. DM 구상

 이번 클론 코딩 주차에서 DM을 만들어보려고 하는데 쉽지가 않다. 어제 STOMP의 기본적인 내용을 공부했어서 오늘은 어떤 구조를 가져가야 1대1 대화 기능을 구현할 수 있을지 고민해봤다.

 일반적으로 STOMP 예제는 오픈채팅 형식으로 이루어져있다. 방을 생성하고 그 방에 입장하면 웹소켓을 이용하여 그 방에 들어온 인원들끼리 소통하는 방식이다. 예제와 달리 DM은 A라는 사람이 B라는 사람에게 DM 요청을 보내면 B에게 알림이 가고 B가 알림을 클릭하면 대화가 시작되는 방식이다. 그래서 필요한 통신을 정리해봤다.

  • A가 B에게 DM 요청을 보내면 방이 생성되어야 한다.
  • B에게 알림이 실시간으로 전송되어야 한다.
  • B가 알림을 클릭하면 채팅방으로 연결되어야 한다.

  우선 모든 유저는 실시간으로 DM의 알림을 받아야 한다. 그래서 인스타그램에 접속한 유저는 모두 웹소켓에 연결되어 있어야 한다. 일단 모든 유저가 서로 다른 URL의 주소로 연결되도록 설정하였다. 

 

 첫 번째 경우에서는 세 가지 단계가 필요하다. 우선 방을 생성해야 하고 생성된 방을 A가 구독해야 하고 그 방에대한 정보를 B에게 전달해야 한다. 

  • A가 DM 방을 만든다.
  • DM 방을 A가 구독한다.
  • A가 DM방에 입장한다.
  • DM방에대한 정보를 B에게 전송한다.

두 번째 경우는 B가 접속하면 웹소켓에 연결되어 있으므로 알림 송신에는 문제가 없을 것이다.  

 

세 번째 경우는 알림을 클릭하면 전송된 DM방을 구독하고 방에 입장하는 단계를 거쳐야 한다.

  • 알림을 클릭하면 B가 DM방을 구독한다.
  • B가 DM방에 입장한다.

일단 대략적인 흐름은 이렇게 생각하고 있다. 내일 팀원분들과 상의해서 더 나은 방향을 모색한 뒤 작업을 이어나가면 될듯하다.

'항해99 > TIL | WIL' 카테고리의 다른 글

2023.03.07 (58일)  (0) 2023.03.08
2023.03.06 (57일)  (0) 2023.03.07
WIL (7주)  (0) 2023.03.06
2023.03.05 (55일)  (0) 2023.03.05
2023.03.03 (54일)  (0) 2023.03.04