본문/내용
1. 본인이 소프트웨어 엔지니어로서 해결했던 문제 또는 프로젝트 경험을 구체적으로 설명해주세요.
대학 재학 중에 진행한 프로젝트에서는 실시간 채팅 애플리케이션의 성능 향상을 목표로 삼았습니다. 당시 채팅 서버의 효율성이 떨어져 사용자들이 메시지를 보내거나 받을 때 지연이 발생하는 문제들이 자주 발생하였으며, 이로 인해 사용자 경험이 저하되고 있었습니다. 이를 해결하기 위해 먼저 서버의 구조와 데이터 처리 방식을 분석하였습니다. 기존에는 싱글스레드 기반의 구조를 사용하고 있었는데, 이는 동시에 여러 사용자의 요청을 처리하는 데 한계가 있음을 발견하였습니다. 이에 대해 멀티스레드 또는 비동기 방식으로 전환하는 방안을 모색하였고, 특히 비동기 I/O를 활용하여 서버의 처리 능력을 향상시키기로 결정하였습니다. 이러한 구조 개선 후에도 일부 병목 현상이 남아 있어, 메시지 큐 시스템을 도입하여 서버 간의 통신과 메시지 전달을 비동기적으로 처리할 수 있도록 설계하였습니다. 이를 구현하기 위해 오픈소스 메시지 큐인 RabbitMQ를 도입하였으며, 메시지 큐를 통해 각 클라이언트가 보내는 메시지를 큐에 넣고, 별도의 워커 스레드가…