쪽지함이 현재는 게시판 리스트처럼 메시지 번호를 중심으로 목록이 생성되는데요.
이걸 카톡 같은 인스턴트 메시지 서비스 또는 구글 메일이나 네이버 메일처럼 다이얼로그 형식으로 구현한다면 어떨까 싶어서요.
실제로 이전부터 그런 수요가 있지 않았나요?
일단 그렇게 하려면 목록 구성 방식을 바꾸면 좋겠는데요.
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쿼리 만드는 게 관건일 것 같습니다. 더불어 캐시를 만들어두는 게 좋을 것도 같고요. 과연 가능할지...
안 그래도 몇 년 전부터 그렇게 바꾸고 싶었습니다.
기존 방식에 맞추어 만들어진 스킨이 많으니 그건 그냥 두고, 선택사항으로요.
아마 테이블 하나 정도는 추가해야 할 거예요.
이번 기회에 코어 한 번 건드려 보심이? ㅋㅋㅋ