코규리
article thumbnail

 

 

 

 

주관적인 의견입니다.

 

 

1:N? N:M?


그저께 싸피에서 마지막 오프라인 날, 각자의 1년 간 활동을 정리할 시간이 있었다. 그 날 언니가 하던 말.

 

🤱🏻 : 으잉,, 오픈채팅 구현에서 난 1:N 통신을 구현한걸까, N:M 통신을 구현한걸까?

🍊: 수신 발신 입장에선 1:N 같기도 하고..

👦: N:M에 가까운 것 같은데? 다수가 다수한테 보내잖아.

 

흐음으흠음

🍊: 내가 알아볼게오

 

 

1:N 이라 볼 수 있는 이유

개별 사용자 관점에서, (가령 카카오톡같은) 오픈채팅방은 1:N 통신으로 볼 수 있다.

이 경우, 한 사용자(1)이 오픈채팅방 내 다른 여러 사용자(N)에게 메시지를 보내고 그 반대의 상황도 동일하게 이루어진다.

각 사용자는 자신과 다른 모든 참가자 간의 통신에서 '1'의 역할을 하며, 동시에 'N' 중의 하나로서 다른 사용자들의 메시지를 수신한다. 

 

N:M 이라 볼 수 있는 이유

전체 체팅방 관점에서, 오픈채팅방은 N:M(다대다) 통신이다.

여러 사용자(N)가 서로 다른 여러 사용자(M)과 소통할 수 있다. 오픈채팅방에 참여한 모든 사용자들은 서로 메시지를 주고 받을 수 있으며, 이는 여러 참가자 간의 양방향 통신을 의미한다. 즉, 모든 사용자가 동시에 송신자이자 수신자 역할을 할 수 있다

 

 

결론

일반적으로는 N:M이라고 말한다. 개별적으로 보았을 때 발신자 한 명이 여러 수신자에게 메시지를 보내는 형태이긴 하나, 결국에 모두가 수신자이자 발신자임을 동의하기 때문이다. 물론, 동시에 서로에게 메시지를 보내는 건 아니니 다르게 말하면 개별적인 1:N 통신의 연속이라 볼 수도 있다.