WebSocket + STOMP + SockJS로 실시간 채팅 구현하기
·
Frontend
최근 대규모 채팅 서비스를 구축하는 프로젝트에 참여하게 되었고, 실시간 통신을 위해 웹소켓(WebSocket) 을 사용하게 되었다.나는 인프라와 프론트엔드를 담당했는데, 웹소켓은 이번이 처음이어서 직접 공부하고 정리해보는 것이 좋겠다고 생각했다.이번 글에서는 내가 왜 Websocket + SockJS + STOMP를 사용했는지, 어떻게 사용했는지를 중점으로 작성했다.실시간 통신 방식 전반에 대해서는 아래 글에서 이미 다루었기 때문에, 이 글에서는 생략하도록 하겠다.https://yongaricode.tistory.com/7 대규모 채팅 시스템 설계하기 1: 실시간 통신 방식ACC에서 사이드 프로젝트를 시작했다. 주제는 총 4개가 있었는데, 그 중 우리 팀은 대규모 채팅 시스템을 만들기로 했다.📌 채팅 ..
대규모 채팅 서비스 설계하기(끝): 트러블 슈팅과 부하 테스트
·
Infra
이번주는 주로 백엔드-인프라 연동, 프론트-백엔드 연동을 진행했다.일단 백엔드-인프라 연동을 하면서 예상치 못한 문제들이 많이 있었다...1. SSM으로 Private EC2 접근하기아키텍처를 설계할 때는 별 생각없이 짰는데, 생각해보니 Private EC2에 접근하는 방법이 없었다. 생각해보면 EC2는 Private Subnet에 있고, 사용자는 오직 ALB를 통해 서비스에 접근한다. 즉, 개발자 입장에서 EC2에 직접 접근할 방법이 없었던 것이다.보통이라면 EC2에 탄력적 IP(Elastic IP)를 부여하고 SSH로 접속했겠지만, Private Subnet의 EC2는 외부에서 접근 가능한 퍼블릭 IP를 가지면 안 된다. 그래서 검색해보니, Private Subnet의 EC2에 접근하는 방법은 대표적..
대규모 채팅 시스템 설계하기 2 : EC2 + WebSocket 기반 최종 아키텍처
·
Infra
1주차에는 아무것도 정확하게 확정을 내리지 못하고 실시간 통신 공부와 AWS 아키텍처 공부만 하다 끝났다...그래도 2주차에는 최종 아키텍처를 드디어 정했다!이것 때문에 이번 주차에만 인프라 회의를 3번이나 했다... 전체 회의까지하면 4번...ㅜㅜ 지난주에는 정말 막막했는데 그래도 다행히 어느정도 감을 잡은 것 같다!사실 다 쓰자면 너무 주제도 많고, 길어서 우리 팀의 주요 쟁점이었던 API Gateway + Lambda, EC2 + Websocket 중 무엇을 사용할 것이냐를 중심으로 글을 쓰겠다!📍 WebSocket API Gateway + Lambda구성 요소AWS API Gateway (WebSocket 타입)AWS Lambda (메시지 처리)DynamoDB / SQS / Kinesis 등→ ..