쪽지함이 현재는 게시판 리스트처럼 메시지 번호를 중심으로 목록이 생성되는데요.

이걸 카톡 같은 인스턴트 메시지 서비스 또는 구글 메일이나 네이버 메일처럼 다이얼로그 형식으로 구현한다면 어떨까 싶어서요.

실제로 이전부터 그런 수요가 있지 않았나요?

일단 그렇게 하려면 목록 구성 방식을 바꾸면 좋겠는데요.

 

1) 우선 대화상대별로 메시지들이 그룹핑이 되어야 할 것 같습니다.

member_srl(자신의 회원번호)과 partner_srl(대화상대의 회원번호)를 넣고 receiver_srl 및 sender_srl 등과 비교하면서 그룹을 추출하면 될 것 같은데, 자세한 로직은 고민을 좀 해봐야겠어요.

- 일반적인 메시지 그룹 조건 : (member_srl = receiver_srl AND partner_srl = sender_srl) OR (member_srl = sender_srl AND partner_srl = receiver_srl)

- 나 자신과의 메시지 그룹 조건 : member_srl = receiver_srl AND member_srl = sender_srl

 

2) 그리고 메시지 그룹별로 정렬을 해야 할텐데요. 그러려면 메시지 그룹별로 최신 메시지를 기준으로 정렬을 해야 할 것 같습니다. 일단 처음의 목록 페이지에서는 각 그룹별로 최신 메시지만 (또는 그 제목과 내용 중 일부만) 보여주면 될 것 같아요. 가능하다면 해당 그룹에 몇 개의 쪽지들이 있는지도 보여주면 좋을 것 같구요.

 

3) 그리고 각 그룹의 최신 메시지를 클릭하면 최신 메시지 내용과 더불어 그 하단에는 해당 회원과 주고 받은 메시지들을 최신순으로 정렬합니다.

 

4) 스킨에서는 각 메시지들이 받은 메시지인지 보낸 메시지인지에 따라 좌우정렬이나 색상 구분을 해주면 되겠고요. 안 읽은 메시지는 안 읽었다는 표시('수신확인')를 적절히 해주면 되겠죠.

 

5) 그리고 해당화면 스킨 하단에는 fixed position 정도로 새 메시지 입력 폼을 넣어주면 될 것 같습니다.

 

 

 ... 이런 컨셉으로 접근해도 되는지 모르겠는데요. 암튼 최종적으로는 위와 같은 방식으로 만든 모듈로 쪽지함의 몇몇 disp 액션들을 덮어버리거나 가로채볼까 합니다.

 

+ 근데 암만 생각해도 위의 1), 2), 3)을 구현하는 xml쿼리 만드는 게 관건일 것 같습니다. 더불어 캐시를 만들어두는 게 좋을 것도 같고요. 과연 가능할지...

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • Lv36

    안 그래도 몇 년 전부터 그렇게 바꾸고 싶었습니다.

    기존 방식에 맞추어 만들어진 스킨이 많으니 그건 그냥 두고, 선택사항으로요.

    아마 테이블 하나 정도는 추가해야 할 거예요.

    이번 기회에 코어 한 번 건드려 보심이? ㅋㅋㅋ

  • Lv36 Lv19
    코어 수준의 pr 등은 제 수준에서는 무리구요ㅜㅜ
    그냥 코어에 기생하는 모듈 하나 만들어보고 그게 안정적인 것 같으면 나중에 코어에서 수정보완해서 흡수해주시는 게 어떨지요. 🤔
  • Lv12
    저렇게 바꾸면 대화(쪽지) 하나 쓸때마다 숫자가 오르는 일은 없는거죠?
  • Lv12 Lv19
    기존 스킨의 호환성 이슈도 있으니 대대적인 스키마 변경 같은 것은 쉽지 않을 것 같아요.
    근데 쪽지로 인한 번호 증가가 문제가 되기도 하나요?
  • Lv19 Lv12

    문제가 되기보다는
    저 개인적으로 뭔가 사이트 숫자를 아껴쓰고싶은 마음에서요 ㅎㅎ

     

    그리고 채팅처럼 만약 활성화가 되어서 하루에 수백개씩 메시지를 주고받는사람이 여럿 생기면

    저 숫자 기하급수적으로 늘어나지 않을까 하는 노파심도 약간 포함이구요.

  • Lv12 Lv19
    ㅎㅎ 여기를 보니 수백경까지는 가능하다고 하네요. https://xetown.com/questions/1702416
    숫자 증가는 안심하셔도 될 것 같아요~
  • Lv19 Lv12
    XE 기반의 유명 사이트 중 시퀀스 값이 수십억~백억을 오가는 곳도 있는데, 아무 문제 없습니다.
    라는 기진곰님 댓글이 딱 보이네요. ㅎㅎ
  • Lv12 Lv36
    시퀀스 값은 올라가겠죠. 각각의 메시지마다 고유번호가 있어야 하니까요.
    글을 쓰지 않고 댓글만 써도 올라가는 것과 마찬가지입니다.