Filter 2

[Distance] API 요청 과부하로부터 서비스를 보호하자.

Distance서비스를 운영하면서 사실 마냥 순탄치는 않았습니다.서비스를 운영하면서 겪었던 문제 중 하나인 "Postman을 통한 무한 API요청"을 효과적으로 차단한 경험을 공유하려 합니다. 저희 서비스는 축제 시즌에 배포된 서비스인데 00대학교에 배포 중 갑자기 오후 11시쯤에 Slack으로 알림하나가 날라왔습니다.이 에러는 저희 서비스에 굉장한 크리티컬한 에러였습니다.사용자가 Distance서비스에 신규 가입을 하려면 반드시 SMS인증을 통해 가입을 할 수 있는데 그 인증 API가 일일 사용량 초과가 된 것입니다.분명 일일 한도가 약 390건 정도가 남아있었는데 이게 한 순간에 사라진게 이상하게 생각해 발송내역을 보니 한 번호가 391건의 요청을 했던 것을 확인할 수 있었습니다. 알고보니 Postm..

Project/Distance 2025.03.11

[TDD] Filter를 통해 사용자의 Repo를 감시하자.

TDD프로젝트의 구현을 마치고 앱스토어에 무려 1트만에 배포가 성공되어서 너무 기뻤다..ㅎㅎㅎㅎㅎ 이제 배포를 하고 문제점을 찾아가던 중 생각보다 치명적인 버그가 있었다.우리 서비스는 Todo를 등록하면 자동으로 사용자가 등록한 github repo의 README와 issue에 등록이 되는 서비스인데 만약 사용자가 깃허브에서 repo를 삭제하면 바로 버그가 생기는 것이다... 왜냐면 DB에는 사용자의 repo정보가 남아있는데 정작 깃허브에는 해당 레포가 없기 때문에 깃허브 repo READMD와 issue를 등록할 수 없기 때문이다..(물론 저 부분도 분리를 해야하는데 추후에 작업을 해보자,,,) 그래서 저 문제를 해결하기 위해 우선 webhook을 등록해서 사용자가 깃허브에서 repo를 삭제하면 자동으..

Project/TDD 2024.09.08