먼저 ack 하던 알림 소비자 – 코루틴 launch 가 메시지를 잃는 이유와 처리 후 ack·멱등 처리
RabbitMQ 알림 리스너가 CoroutineScope.launch 로 일을 넘기고 바로 반환해, 알림을 보내기 전에 ack 가 나가던 문제를 정리했다. runBlocking 으로 처리 후 ack 하도록 바꾸고, 그로 인해 생기는 재배달을 수신 원장과 업무 키로 막았다.
RabbitMQ 알림 리스너가 CoroutineScope.launch 로 일을 넘기고 바로 반환해, 알림을 보내기 전에 ack 가 나가던 문제를 정리했다. runBlocking 으로 처리 후 ack 하도록 바꾸고, 그로 인해 생기는 재배달을 수신 원장과 업무 키로 막았다.
외부 API 연동에서 몇 번 만난 타임아웃을 계기로 정리했다. 타임아웃이 왜 나는지, connect·read·call·풀 대기·코루틴 타임아웃이 각각 무엇을 재는지, 값은 어떻게 정하고 난 뒤에는 무엇을 하는지를 코틀린 코드와 실행 결과로 확인했다.
입사 첫 주, 회사 기술 스택을 익히겠다는 마음 하나로 LINE 조세영 님의 「코틀린 코루틴의 정석」 강의를 결제했었다. 운이 좋게도 책 증정 이벤트에 당첨되어 책까지 받았지만, 정신없이 업무에 몰입하다 보니 그 책
"비동기로 처리하면 더 빨라요" 이 말을 백엔드 개발자라면 한 번쯤 들어봤을 것이다. 하지만 진짜로 빠를까? 사실 비동기는 "더 빨라진다"보다 "기다리는 시간을 겹친다"가 더 정확한 표현이다. 이번 글에서는 동기/비