Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

쪽지를 카톡처럼 꾸미던 중 답글을 추적하는 동작을 해보려 했는데요.(링크 누르면 답글 쪽으로 이동)
이게 불가능하다는 걸 알았습니다.
쪽지 쪽 테이블(member_message)에 parent_srl이라든가 그에 준하는 컬럼이 없어서 원본/부모 메시지에 관한 정보를 알아낼 수 없더라구요.
원본에 관한 정보는 그냥 답장 보낼 때 원본 메시지 긁어다가 내용만 붙여주는 것으로 잠깐 등장한 뒤 끝납니다.
답장을 보내고 난 다음에는 원본/부모 메시지를 추적할 기반이 하나도 없어요(적어도 제가 파악한 바로는요).

 

이런 거는 서드파티 모듈에서 따로 테이블 만들어서 parent_srl을 넣어주는 게 나을까요?
근데 그렇게 하면 각 message_srl마다 parent_srl을 기록해줘야 해서 데이터가 누적량이 늘어날 것 같은 노파심도 듭니다.

그렇다고 원래 있는 member_message 테이블에다 parent_srl 컬럼만 넣어주면 기존 데이터에 parent_srl에 준하는 값을 기록해둘 수가 없고...
 

  • profile

    댓글과 달리, 쪽지는 원래부터 부모/자식 관계가 아니지요.

     

    메일과 비슷한 개념으로 설계되었다고 가정하면 In-Reply-To: 에 해당하는 데이터라도 기록해 두었다면 좋았겠지만, 이제 와서 제목의 Re: 이후 부분이나 내용에 포함된 인용문으로 추측하는 것도 무리고요.

     

    원본 메시지에 대한 정보가 있더라도 댓글의 comments_list 테이블처럼 정렬 순서 및 depth 정보를 함께 기록하지 않으면 목록에서 트리 구조를 재현하기가 무척 난감합니다. 같은 상대방과 꾸준히 메시지를 주고받다 보면 depth가 무한정 깊어지기만 할 테니, 트리 구조가 그다지 쓸모있는 UI인지도 의문이 들고요.

     

    현재로서는 대화 상대방의 member_srl (+ 제목이 Re:로 시작하는지)만을 기준으로 분류해서, 각각의 쓰레드를 해외 포럼처럼 1차원적으로 나열하는 것이 최선일 것 같네요. 지메일도 1차원적으로 나열할 뿐, 메일링 리스트처럼 트리 구조로 표현하지는 않아요. 여기서 디자인만 바꾸면 그냥 채팅이 되고요.

  • profile profile
    트리 형식을 구현하려는 것 까진 아니고 부모 쪽지 정도는 지시할 수 있으면 좋겠다는 바람이 들더라구요,
    현재 추진하고 있는 방식도 말씀하신 것처럼 대화 상대 중심으로 그냥 나열하는 방식이에요.
    참고로 메시지 content 가져올 때 원본 content 부분(<div style="padding~~" 이하 부분)은 필터링해서 안 보여주고 있는데 채팅 형식에서는 이게 더 깔끔하더군요ㅎㅎ
    그나저나 앞으로 새로 발생하는 쪽지에 한해 parent_srl 컬럼을 추가 적용하더라도 운영상 예상되는 문제는 없겠죠?
  • profile profile
    쪽지는 1개이지만 보내는 사람, 받는 사람 각각 DB 레코드가 생성되고 서로를 참조하는 related_srl도 있기 때문에, 각각 자신에게 해당되는 메시지에 parent_srl이 걸리도록 잘 맞춰야 할 것 같습니다.
  • profile profile
    넵, 한번 시도해보겠습니다!
  • profile

    member_srl 기준으로 한 사람 당 한 개의 채팅방을 가지는 게 구조 변경 없이 그나마 채팅과 유사하게 구현할 수 있겠네요.
    채팅방 목록에서 회원 프로필 클릭하면, 이때까지 서로 주고 받은 쪽지를 순차적으로 모두 뿌려줘도 되고요.

  • profile profile
    이심전심이네요!
    다만 그런 방식으로 코드를 짜보고는 있는데 제가 UI/UX쪽은 더 모르다보니 여기서 시간을 많이 잡아먹고 있습니다 XD