IT Tech/개발일기

토이프로젝트 : 귤톡

Developer JS 2025. 3. 10. 10:49
반응형

  생업이 바쁘다는 이유로, 여러가지 이유로 잠시 글로부터 멀어져 있었다. 글을 쓴다라는게 생각보다 쉬운일이 아닌만큼 이런저런 이유를 핑계로 글을 쓰지 못했다. 이 블로그라는게 정말로 필요한 지에 대한 의문도 사실 약간 있었다. 사실 어떤 개발을 해갈때 글을 쓰면서 정리를 해가면서 한다는 건, 느낌상으로 아주 무거운 강철 가방을 메고, 뛰어가는 느낌이다. 분명 목표가 저기 앞에 보이고, 어떻게 가야하는지 보이지만, 내가 메고 있는 가방때문에 앞으로 가지 못한다는 답답함이 있다.

 

  하지만, 최근에 개발을 하면서 생각했던 점은 그 답답함은 그냥 느낌이라는 것이다. 아주 무거운 가방을 메고 달리는 것은 분명 그 당시의 기록을 높이는 데 아주 큰 방해물이 된다. 하지만 그렇다고 해서 그 가방을 놓고 뛰는 것은 단순히 내가 평소에 달리는 것과 다를게 없다. 나는 지금 나의 실력을 향상 시켜야 한다. 그렇게 하기 위해서는 그런 가방을 메고, 달리는 연습을 해야한다는 것이다. 지금 당장은 조금 답답하고, 힘들지라도 언젠가 내가 그 무거운 짐을 놓고 기록을 재기위해 달리는 그 날을 위해서..

 

 아무튼 다시 블로그를 쓰려고 한다. 그 첫번째가 바로 귤톡이다. 뭐 색다른 아이디어가 있어서 이 프로젝트를 시작한 것은 아니다. 그냥 채팅을 할 수 있는 모바일 어플리케이션을 만들어 보고 싶다는 팀원들의 의견을 반영해서 이 프로젝트를 시작했다.

 

  우선 채팅 어플리케이션이 진짜 채팅으로서의 기능이 되도록 하기위해서 필요한 부분은 웹 소켓(WebSocket)기능이다.

 

웹 소켓(WebSocket)

  웹 소켓은 기존의 HTTP의 요청/응답 방식과는 다르게, 클라이언트와 서버 간에 지속적인 연결을 유지하면서 양방향 통신을 가능하게 해주는 기술이다. 기존의 HTTP 방식은 클라이언트가 요청을 보내면 서버가 응답하는 방식인데, 채팅같은 경우는 실시간으로 메시지를 주고받아야하는데 요청과 응답의 방식으로는 실시간으로 대화를 할 수 없게 된다.

 

  예를 들어보자, 채팅 어플리케이션에서는 사용자가 메시지를 입력할 때마다 서버에 요청을 보내고, 서버에서 응답을 받아야 한다면 지연이 발생할 수 있다. 그러나 웹 소켓을 사용하면, 어플리케이션이 처음 연결되면 클라이언트와 서버가 지속적으로 연결을 유지하고, 양쪽에서 자유롭게 데이터를 주고받을 수 있다. 즉, 세로운 메시지가 도착하면 서버가 즉시 클라이언트로 푸시할 수 있고, 클라이언트 역시 서버로 실시간 메시지를 전송할 수 있게 되는 것이다.

 

  또한, 웹 소켓은 연결을 유지하는 동안 데이터의 전송비용과 지연 시간을 줄여준다. 이 때문에 실시간 기능이 중요한 채팅, 게임, 주식 거래 어플리케이션 등에서 많이 활용되고 있는 기술이다.

 

  그래서, 우리 팀이 모바일 채팅 어플리케이션 '귤톡'을 개발하면서 가장 중요하게 고려한 부분 중 하나가 바로 웹 소켓 기능이었다. 웹소켓을 통해 사용자가 채팅방에 들어갔을 때, 서버와의 연결이 유지되며 새로운 메시지나 업데이트가 있을 때마다 즉각적으로 반영할 수 있따. 이는 사용자 경험을 크게 향상시키는 요소다.

 

  물론, 웹 소켓을 도입한다고 해서 모든 문제가 한 번에 해결되는 것은 아니다. 연결 관리, 에러 처리, 그리고 네트워크 상태에 따른 적절한 재연결 로직 등을 함께 고민해야 한다. 이러한 부분들을 보완하기 위해, 여러 라이브러리와 프레임워크들이 등장했고, 우리도 그 중 하나를 선택해서 사용할 계획이다.

 

  결론적으로, 웹 소켓은 채팅 어플리케이션을 비롯한 다양한 실시간 서비스에서 핵심적인 역할을 수행하며, 사용자에게 빠르고 원활한 커뮤니케이션 환경을 제공하는 데 필수적인 기술이다. 이제 웹 소켓에 대한 이해를 바탕으로, 귤톡이 어떻게 실시간 채팅 기능을 구현하고 있는지, 그리고 우리가 이 기능을 통해 얻은 것에 대해서 하나하나 천천히 이야기 해보도록 하겠다.

 

 

728x90
반응형