Backend와 Front가 자료를 주고받는 방식은 크게 API, Socket으로 나뉜다.
채팅을 구현하던 중 채팅방 목록을 어떤 방식으로 구현할지 고민에 빠졌다.
rest api로 구현 시 구현 가능 방법은
정도 있을 것 같다.
채팅방 목록은 상태를 최신화가 중요하다고 생각했다. 그래서 새로운 데이터를 언제 받아올까 고민을 했었고, 새로고침 버튼 혹은 탭이나 페이지에 api호출을 넣는 방법을 생각했다.
Web Socket으로 구현 시 구현 가능 방법은
Socket이 돌아가는 방법은 아직 Socket공부를 하지 않아 정확하게는 모르겠지만 일단 실시간으로 정보를 받아올 수 있을 것이다.
그럼 초기 데이터를 어떻게 받아오고 어느정도 유지하는지가 중요하다고 생각되고, 만약 소켓을 사용한다면 전체자료를 호출하고 전체 자료를 관리하는 방식이 좋을 것 같다고 생각했다.
우리는 페이지네이션을 사용해 페이지가 바뀔 떄 api를 호출하고 소켓을 연결하지는 않기로 했다.
채팅방 목록은 어느정도 데이터를 최신화할 필요가 있다고 생각하지만.
실시간으로 보여주는 것은 오버엔지니어링이라고 생각한다.
유저가 많아짐에 따라 서버를 유지하기 위해 필요한 자원이 방대해질 것이기 떄문에 채팅방 목록에서의 소켓 사용은 하지않기로 하였고.
전체를 받아오는 API VS 부분 부분 받아오는 API를 골랐을 때
부분 부분이 최신화하기 유리하다고 판단하여 부분 부분 받아오는 페이지 네이션 방식을 채택하게 되었다.