동시성 버그 해결
실시간 채팅 기능을 개발하던 중 동시에 여러 메시지가 전송되면 순서가 뒤바뀌는 문제가 발생했습니다. 저는 먼저 문제를 재현할 수 있는 테스트 케이스를 만들어 원인이 메시지 큐 처리 순서 보장이 없는 데 있다는 것을 확인했습니다. 이를 해결하기 위해 메시지마다 시퀀스 번호를 부여하고 수신 측에서 순서를 재정렬하는 로직을 추가했습니다. 초기에는 시퀀스 번호만으로 해결될 줄 알았지만 지연 도착 케이스가 남아 타임아웃 처리를 별도로 추가했습니다. 결과적으로 100개 동시 전송 테스트에서도 순서 오류가 발생하지 않는 것을 확인했습니다.