
안녕하시렵니까. 길어지는 취업 준비 과정 가운데, 개발의 감을 잃지 않고자 실시간 채팅을 구현해봤습니다. 🤔 왜 실시간 채팅을 구현했는가? 기존 프로젝트들은 HTTP 기반의 단방향 통신을 활용한 RESTful API 방식이었습니다. 또 똑같은 방식의 프로젝트를 하자

안녕하시렵니까.이전 포스팅에서는 실시간 채팅 서비스의 개요에 대해 작성했습니다. 이번 포스팅은 back_end 서버에서 어떻게 서비스를 구현했는지 코드, 플로우 차트(시퀀스 다이어그램)과 함께 자세하게 작성해보겠습니다.기본적으로 코드의 양이 많기 때문에, 이번 포스팅은

안녕하시렵니까. 이전 포스팅에서는 back_end 서버에서 어떻게 서비스를 구현했는지에 대해 알아보았습니다. 글을 작성하기 앞서, 이전의 실시간 채팅 서비스에 변경점이 생겼습니다. 실시간 채팅 서비스

안녕하시렵니까.EC2, Docker를 활용한 배포 이전에 간단히 외부 서버에서의 동작이 원활하게 작동하는지 테스트 해보고자 ngrok을 활용했습니다. 그러나! ngrok을 이용해 로컬 서버를 외부에 노출할 때, SockJS 기반의 WebSocket 연결에서 CORS

오타/잘못된 내용에 대한 지적은 언제나 환영입니다!MapleLand Chat - Chrome 스토어안녕하시렵니까..메이플랜드를 즐기면서 불편했던 점 중 하나는 게임 내에 경매장 기능이 없어 외부 사이트인 메랜지지(https://mapleland.gg)를 이용해
이번 포스팅은 해당 구조를 파사드 역할을 하는(Use Case) + 도메인 서비스로 바꾸며 겪은 변화에 대해 포스팅해보겠습니다. 단일 책임 원칙(SRP), 관심사의 분리(SoC), 레이어 간 인터페이스 분리는 유지보수성과 테스트 용이성을 높이는 핵심 설계 원칙입니다.이
이번 프로젝트에서는 운영 효율성을 높이기 위해 Third-party Application을 도입했습니다. 당장은 사용자 수가 적더라도, 향후 폭발적인 증가나 서버 인스턴스 확장 상황을 대비해 학습하고 싶었습니다.그 과정에서 제한 정책을 얼마나 빠르고 정확하게 적용할 수
채팅 서비스에서 욕설 필터링은 필수아니겠습니까? 단순히 차단만 하는 게 아니라, 메이플스토리 인게임 필터링과 최대한 유사하게 금칙어를 다른 단어로 변환하는 방식으로 구현해보았습니다.처음에는 단순하게 문자열을 하나씩 순회(Brute Force)하거나, 패턴 검색으로 유명
채팅 서비스나 SNS 피드처럼 무한 스크롤 구조를 구현할 때, MongoDB 쿼리 성능은 사용자 경험에 직결됩니다. 이번 포스팅은 실제 서비스에서 발생한 쿼리를 "Plan Cache" 기반으로 분석하면서, 어떤 인덱스가 선택되었고 왜 더 효율적인지 정리해보았습니다.특정
실시간 채팅 서비스를 만들면서 고민했던 점 중 하나는 사용자를 어떻게 구분할까? 였습니다.이 서비스는 로그인이 없는 익명 채팅이기 때문에, 일반적인 ID/PW → AccessToken 발급 방식은 사용할 수 없었어요.사용자의 정보를 기반으로 UUID(FingerPrin