메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

주니어 백엔드 개발자로서 공감가는 내용이 많았던 책이었습니다.

devholi***

|

2025-05-31

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

실무에서 자주 겪는 다양한 문제를 효과적으로 해결하는 법

  • 저자 : 최범균
  • 출간 : 2025-04-28

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

목차

책은 11가지의 챕터와, 부록 3가지를 담고 있습니다. 본 서평에서는 책의 전반적인 구성과, <4. 외부 연동이 문제일 때 살펴봐야 할 것들>의 재시도 전략에 대해 말씀드리겠습니다.

  1. 들어가며
  2. 느려진 서비스, 어디부터 봐야 할까
  3. 성능을 좌우하는 DB 설계와 쿼리
  4. 외부 연동이 문제일 때 살펴봐야 할 것들
  5. 비동기 연동, 언제 어떻게 써야 할까
  6. 동시성, 데이터가 꼬이기 전에 잡아야 한다
  7. IO 병목, 어떻게 해결하지
  8. 실무에서 꼭 필요한 보안 지식
  9. 최소한 알고 있어야 할 서버 지식
  10. 모르면 답답해지는 네트워크 기초
  11. 자주 쓰는 서버 구조와 설계 패턴
  12. 부록 A: 처음 해보는 성능 테스트를 위한 기본 정리
  13. 부록 B: NoSQL 이해하기
  14. 부록 C: DB로 분산 잠금 구현하기

 

책의 구성

각 챕터에서는 아래와 같은 구성을 가지고 있습니다.

 

배경 소개

먼저, 해당 챕터와 관련하여 "왜" 알아야 하는지를 사례를 통해 알려주고 있습니다. 예시로 10장에서는 네트워크 지식을 알아야 하는 이유로 외부 API 업체에게 허용 IP를 제대로 알려주지 않아 불필요한 지연이 발생하였고, 4장에서는 A은행에서 외부 트래픽에 대해 충분한 대비를 했음에도 외부 API 측에서 장애가 발생함으로써 문제가 발생하였다는 등의 사례가 있었습니다.

 

이런 사례를 보면서 왜 해당 챕터에 대한 개념을 알고 있어야 하는지를 더 쉽게 접할 수 있었습니다.

풍부한 그림

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

4장: 외부 연동이 문제일 때 살펴봐야 할 것들

다음으로는 특히 공감이 되었던 4장에 대해 말씀드리겠습니다.

 

4장에서는 외부 API 연동 등을 할 때 발생할 수 있는 상황들에 대해 알려주고 있습니다.

 

아무리 코드를 잘 짰더라도, 외부 API 자체에서 문제가 발생한다면 해당 상황에서 쉽게 당황할 수 있습니다. 실제로 저희 회사는 외부 API의 호출을 자주 하게 되는 시스템을 가지고 있는데, 외부 API에서 500 에러를 던져줘서 어떻게 대처해야 할 지 난처했던 적이 있었습니다.

 

재시도 전략

외부 API에서 문제가 발생했을 경우, 가장 쉽게 적용해볼 수 있는 방법 중 하나는 재시도 전략을 적용하는 것입니다. 그러나, 무작정 재시도를 한다면 올바른 해결법이 아닙니다.

 

책에서는 재시도 전략을 사용할 수 있는 조건에 대해 명확히 명시해두고 있습니다.

  1. 단순 조회 기능인 경우: 예시로, 포인트 조회 같은 기능은 다시 호출해도 포인트 중복 차감 등 데이터 문제가 발생하지 않습니다.
  2. 연결 타임아웃으로 인한 경우: 연동 서비스에 연결되는 과정에서 발생한 문제이므로, 재시도해도 무방합니다. 다만 읽기 타임아웃 등 이미 연동 서비스가 요청을 처리하고 있는 중이라면 재시도를 해도 되는지 반드시 확인해야 합니다.
  3. 멱등성 (idempotent)을 가진 변경 기능일 경우: 멱등성을 가지지 않고 데이터를 변경하는 기능을 재시도 할 경우, 데이터가 원치 않게 변경될 여지가 있으므로 주의해야 합니다.

개인적으로는 이 세 가지 외에도 외부 API 측에서 재시도 하기를 권장하는 에러 코드가 나온다면, 충분히 재시도 전략을 사용해도 괜찮다고 생각합니다. 예를 들어 회사에서는 외부 API를 활용하여 주문을 생성하는 로직이 있었는데, 외부 시스템 측에서 데드락 이슈가 발생하여 재시도하기를 권장하는 메시지가 나와 과연 재시도해도 되는지 직접 해당 에러가 발생한 시점에서 주문이 생성되지 않았는지 확인해 본 후에 재시도 전략을 취했습니다.

 

재시도 전략 시 고려해야 할 점

재시도 전략을 취할 시, 재시도 횟수재시도 간격을 결정해야 합니다. 책에서는 보통 1 ~ 2번 정도의 재시도를 권장하고 있으며, 재시도 간격은 외부 API의 부하를 최대한 주지 않도록 점진적으로 늘리는 방법을 알려주고 있습니다.

 

저 또한 재시도 전략을 적용하면서 3번 정도의 재시도에 지수 백오프 (exponential backoff)를 따른 점진적인 재시도 간격을 두기로 하면서 해당 내용을 적용했습니다.

 

총평

현재 회사에서 백엔드 중심의 업무를 하면서 공감가는 주제가 있기도 했고, 백엔드 쪽에서 유명하신 저자님의 최신 신간을 꼭 읽어보고 싶었는데 만족스러웠습니다. 아쉬웠던 점은 예상했던 것 보다 분량이 짧게씩 있던 것이었는데, 실무를 처음 접하게 되면서 본인이 백엔드 개발자로서 "무엇을 모르는지 모르는 상태"에서"무엇을 모르는지 아는 상태"로 넘어가기 위한 지침서로 활용하면 좋겠다는 생각이 들었습니다.

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?