storycraft/node-kakao

refactor(talk/chat): TalkChatData.getSenderInfo() 의 인자로 꼭 TalkChannel 이 필요할까요?

jjangga0214 opened this issue · 1 comments

getSenderInfo(channel: TalkChannel): ChannelUserInfo | undefined {
return channel.getUserInfo(this._chat.sender);
}

개념상 다소 의문입니다.
하나의 카톡(챗)은 하나의 발신자와 하나의 채널에 종속된다고 생각할 수 있습니다.

따라서 발신자의 정보를 알기위해 채널을 꼭 인자로 넘겨야 할까요?
이미 내부의 property 를 통해 채널도 참조하고 있다면?
"챗은 '당연히' 외부 정보 없이도 발신자 정보를 참조하고 있다" 고 디자인 할 수도 있지 않을까요?

위의 TalkChatDataChatlog 객체를 감싸고 여러 간편한 메서드들을 제공하는 클래스이기 때문입니다.

개념상 다소 의문입니다.
하나의 카톡(챗)은 하나의 발신자와 하나의 채널에 종속된다고 생각할 수 있습니다.

챗은 단순히 타입과 content, attachment을 가질수 있는 객체라고 생각하세요. 여기서 클라이언트 또는 다른 유저가 전송을 해 발신자와 logId(챗 id) 를 갖게된 것이 Chatlog객체입니다. 발신자에 대한 상세정보는 TalkChannel객체가 갖고 있지 Chatlog객체가 갖고 있지 않습니다. 아까 말했듯이 클라이언트가 특정 채널로 전송하거나 다른 유저가 전송한 것을 받은 챗이 Chatlog객체라고 했습니다. 따라서 Chatlog또는 TalkChatData에서는 무조건 거쳐야 하는 TalkChannel객체를 불필요하게 참조 할 필요가 없습니다.