본문/내용
1. 본인이 경험한 프로젝트 중 가장 어려웠던 문제와 해결 방법을 설명해 주세요.
가장 어려웠던 프로젝트는 대규모 실시간 채팅 플랫폼 개발이었습니다. 초반 설계 단계에서 서버 부하로 인해 1000명 이상 접속 시 지연 문제들이 발생했고, 사용자 경험이 크게 저하되는 문제들이 있었습니다. 문제 해결을 위해 먼저 기존 아키텍처를 분석한 결과, 서버 간 메시지 전달이 병목 현상을 일으키는 것을 발견하였습니다. 이를 해결하기 위해 Redis Pub/Sub를 채택하여 메시지 전달 방식을 비동기 처리로 전환했고, 서버 간 동기 통신을 WebSocket 기반으로 재설계하였습니다. 또한, 서버 확장성을 높이기 위해 Docker 컨테이너와 Kubernetes 오케스트레이션을 도입하여 수평 확장을 신속하게 수행할 수 있게 하였으며, 이를 통해 접속 사용자 수가 1000명에서 5000명으로 늘어나도 평균 지연시간이 50ms 이하로 유지될 수 있었습니다. 이 과정에서 서버 부하 테스트를 반복하며 병목 구간을 지속적으로 최적화하였고, 최종적으로 시스템 안정성과 확장성을 크게 향상시켜 9 9% 가용성을 확보하였습니다.
2. RESTful API 설계 시 고려해야 할 중요한 원칙은 무엇인가요
…