티스토리 뷰

메신저를 만들게 된 이유?

지금까지 해왔던 프로젝트의 대부분은 RESTful API를 만든 다음 클라이언트와 서버가 HTTP 통신을 통해 정보를 공유하는 프로젝트였다. 그안에서 실시간 서비스를 구현해보려고 해봤지만, 기본적으로 HTTP는 클라이언트가 서버에 요청해야만 정보를 얻을 수 있는 단방향 통신이기 때문에 생각처럼 구현되지 않았던 경험이 있다. 그래서 이번 기회에 양방향 통신을 하는 서비스를 만들어보고 싶었고 선택한 것이 1:1로 실시간 대화가 가능한 메신저이다.

웹소켓?

웹소켓은 TCP 연결을 통해 서버와 클라이언트가 양방향 통신을 가능하게 해주는 통신 프로토콜이다. 웹 클라이언트의 요청 시에만 서버의 정보를 받을 수 있는 HTTP 방식과는 다르게 클라이언트의 요청이 없어도 이벤트가 발생하면 서버가 내용을 전달할 수 있도록 해준다.

사용한 기술 스택

Java/Springboot: 가장 익숙하기도 하고 websocket을 지원해주기 때문에 사용
Javascript/React: 웹 소켓을 지원하는 라이브러리와 참고 자료가 많아서 사용
Redis: 메시지 데이터와 사용자 정보를 저장하는 데 사용

결과물

등록 & 로그인

등록로그인

상대 추가

대화상대추가

실시간 대화

실시간대화

향후 프로젝트 계획

기본적인 기능은 구현했지만, 아직 부족한 부분이 많다. 서비스 로직만 구현되어 있기 때문에 예외상황에 대한 처리와 코드의 정리가 필요하다. 그리고 현재 메신저 대화는 문자만 가능하지만, 이후 파일과 동영상 공유도 가능하도록 확장해보고 싶다. 지속해서 프로젝트에 관심을 가지면서 관리할 필요가 있을 것 같다.

  • 할일
    • 프로젝트 구조, 코드 정리
    • 이미지, 문서파일 전송
    • 동영상 파일 전송
    • 단체 채팅방 개설

관련 링크

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함