devholi***
2025-05-31

한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.

책은 11가지의 챕터와, 부록 3가지를 담고 있습니다. 본 서평에서는 책의 전반적인 구성과, <4. 외부 연동이 문제일 때 살펴봐야 할 것들>의 재시도 전략에 대해 말씀드리겠습니다.
각 챕터에서는 아래와 같은 구성을 가지고 있습니다.
먼저, 해당 챕터와 관련하여 "왜" 알아야 하는지를 사례를 통해 알려주고 있습니다. 예시로 10장에서는 네트워크 지식을 알아야 하는 이유로 외부 API 업체에게 허용 IP를 제대로 알려주지 않아 불필요한 지연이 발생하였고, 4장에서는 A은행에서 외부 트래픽에 대해 충분한 대비를 했음에도 외부 API 측에서 장애가 발생함으로써 문제가 발생하였다는 등의 사례가 있었습니다.
이런 사례를 보면서 왜 해당 챕터에 대한 개념을 알고 있어야 하는지를 더 쉽게 접할 수 있었습니다.

책에서 좋았던 점은 단순히 글로써 설명하는 것 말고도 각종 그림을 통해 더 쉽게 떠올릴 수 있도록 도와준다는 점이었습니다. 예시로 6장에서는 DB 데이터 변경 시의 동시성에 대해서도 주의해야 하는 이유를 알려주고 있는데, 관리자와 고객이 각각 관리 시스템과 주문 서비스를 거쳐 DB에 데이터를 동시에 변경할 수 있다는 케이스를 보며 쉽게 머릿속으로 상상될 수 있었습니다.

다음으로는 특히 공감이 되었던 4장에 대해 말씀드리겠습니다.
4장에서는 외부 API 연동 등을 할 때 발생할 수 있는 상황들에 대해 알려주고 있습니다.
아무리 코드를 잘 짰더라도, 외부 API 자체에서 문제가 발생한다면 해당 상황에서 쉽게 당황할 수 있습니다. 실제로 저희 회사는 외부 API의 호출을 자주 하게 되는 시스템을 가지고 있는데, 외부 API에서 500 에러를 던져줘서 어떻게 대처해야 할 지 난처했던 적이 있었습니다.
외부 API에서 문제가 발생했을 경우, 가장 쉽게 적용해볼 수 있는 방법 중 하나는 재시도 전략을 적용하는 것입니다. 그러나, 무작정 재시도를 한다면 올바른 해결법이 아닙니다.
책에서는 재시도 전략을 사용할 수 있는 조건에 대해 명확히 명시해두고 있습니다.
개인적으로는 이 세 가지 외에도 외부 API 측에서 재시도 하기를 권장하는 에러 코드가 나온다면, 충분히 재시도 전략을 사용해도 괜찮다고 생각합니다. 예를 들어 회사에서는 외부 API를 활용하여 주문을 생성하는 로직이 있었는데, 외부 시스템 측에서 데드락 이슈가 발생하여 재시도하기를 권장하는 메시지가 나와 과연 재시도해도 되는지 직접 해당 에러가 발생한 시점에서 주문이 생성되지 않았는지 확인해 본 후에 재시도 전략을 취했습니다.
재시도 전략을 취할 시, 재시도 횟수와 재시도 간격을 결정해야 합니다. 책에서는 보통 1 ~ 2번 정도의 재시도를 권장하고 있으며, 재시도 간격은 외부 API의 부하를 최대한 주지 않도록 점진적으로 늘리는 방법을 알려주고 있습니다.
저 또한 재시도 전략을 적용하면서 3번 정도의 재시도에 지수 백오프 (exponential backoff)를 따른 점진적인 재시도 간격을 두기로 하면서 해당 내용을 적용했습니다.
현재 회사에서 백엔드 중심의 업무를 하면서 공감가는 주제가 있기도 했고, 백엔드 쪽에서 유명하신 저자님의 최신 신간을 꼭 읽어보고 싶었는데 만족스러웠습니다. 아쉬웠던 점은 예상했던 것 보다 분량이 짧게씩 있던 것이었는데, 실무를 처음 접하게 되면서 본인이 백엔드 개발자로서 "무엇을 모르는지 모르는 상태"에서"무엇을 모르는지 아는 상태"로 넘어가기 위한 지침서로 활용하면 좋겠다는 생각이 들었습니다.