비동기 채팅 구현을 위한 생각

Freddie·2021년 4월 6일
0

졸업 전시회를 준비하며 평소에 해보지 못하였던 많은 기술스택들과... 많은 신기술들을 배우고 있습니다.
이번에 덕구(개인적으로 정말 잘 만들고 싶음)라는 웹사이트를 만들면서 비동기 채팅을 구현하게 되었는데요.
문제는 구현을 할 줄 모른다는 것이겠지요.
덕구의 백엔드 언어는 spring입니다.

맨 처음에는 동기와 비동기에 대한 생각을 하지 않고, socket.io를 사용해야겠다는 생각을 무작정했습니다. (이 상태로 기능 정리하고 , 프로토타입까지 받음 리틀 스튜핏)
생각해보니, 그럼 저는 상대방에게 오는 연락을 받기 위해 항상 웹사이트를 켜두어야겠더군요.
(CPU가 힘들겠지요... 다른 애가 힘든가요? 잘 몰라요)

그래서 찾은 방법이?
rabbitmq, kakfa 쓰기!

제가 정말정말정말정말 가고 싶은 회사 채용 공고를 구경하던 중(할 수 있다를 외치면 이루어지듯...) rabbitmq, kakfa를 사용한 경험이 있으면 더 좋다고 하더라고요!
근데 때마침 메세징 뭐시기라서 와우 나에게 딱이야 적합해 메리 미를 외쳤지만...
한글 자료 너무 없음(서치 능력 부족일 가능성 디따 많음) + 유저 간의 채팅과는 조금 먼 느낌이...

그러던 중... Webpack이라는 것을 알아냈는데!
사실 방금 찾아내서 아직 잘 모르겠습니다 ㅎㅎ 한 번 잘 볼게요

만약 아무리 찾아도 모르겠다면... Firebase 실시간 데이터베이스를 이용해서 채팅 기능을 구현할 예정이에요 ㅠㅠ 그리고 AJAX로 개발도 생각해보고 있지요...

2020/04/11 정신 차렸습니다.
현재 멘토링을 받고 있는 것이 생각나서 멘토 분께 여쭈어보고 길잡이를 잡았습니다.
Kakfa와 소켓, Mysql을 사용하여 웹 채팅을 구현할 예정입니다 하핫.

2020/04/26 전개도 짜기

Kafka와 rabbitmq 중 Kafka를 고른 이유!

  1. 파일 시스템에 메세지를 저장하기 떄문에 다른 메세지 큐에 비해 유실 위험이 적고, 에러 복구가 용이하다.
  2. 확장성이 좋다. (실제로 기술스택을 추가하거나 그럴 생각은 없지만요...)
  3. 성능이 좋다. (실제로 다른 메세지 큐들에 비해 빠르다고 해요)
  4. 지나가는 말로 누군가가 rabbitmq보다 Kafka가 채팅에 적합하다고 했다.(누군지는 모르지만...)

앞으로 추가해서 써나갈 예정입니다. 만약에라도 혹시 이 글을 보시고 도움이 될만한 정보를 아신다면... 꼬옥 댓글 남겨주세요...

profile
그냥 'Freddie'라는 이름이 좋아보였습니다.

0개의 댓글