Fetch 요청이 멈추지 않게 만들기 — AbortSignal.timeout·사용자 취소·안전한 재시도
도입 fetch()는 HTTP 500에서 자동으로 예외를 던지지 않으며, 업무에 맞는 제한 시간도 대신 정해주지 않는다. 사용자는 이미 화면을 떠났는데 요청이 계속되거나, 실패한 POST가 재시도되어 중복 결제...
패턴 검색 결과: 14개
도입 fetch()는 HTTP 500에서 자동으로 예외를 던지지 않으며, 업무에 맞는 제한 시간도 대신 정해주지 않는다. 사용자는 이미 화면을 떠났는데 요청이 계속되거나, 실패한 POST가 재시도되어 중복 결제...
도입 같은 AI 모델이라도 프롬프트에 따라 결과 품질이 크게 달라진다. 실무에서는 모델보다 프롬프트 설계가 더 중요할 때가 많다. 특히 AI 에이전트와 코드 생성에서는 프롬프트 품질이 결과물을 결정...
도입 외부 API나 다른 서비스가 느려지면 내 서비스까지 같이 느려지는 경우가 많다. 문제는 실패 자체보다 장애가 연쇄적으로 퍼지는 상황이다. 이걸 막기 위한 대표 패턴이 Circuit Breake...
리눅스에서 파일 디스크립터(File Descriptor, FD)는 “열려 있는 파일을 식별하는 번호”다. 여기서 말하는 파일은 실제 파일뿐 아니라 소켓, 파이프, 장치까지 포함한다. 즉 리눅스에서는 모든 I/...
리눅스에서 메모리는 단순히 “사용량”만 보는 것이 아니라 구조를 이해해야 한다. 프로세스 메모리와 시스템 메모리 구조를 함께 봐야 성능 문제를 정확히 판단할 수 있다. 특히 메모리 부족, OOM, swap 발...
데이터베이스 인덱스는 크게 Clustered Index와 Non-Clustered Index로 나뉜다. 두 인덱스는 “데이터를 어떻게 저장하고 접근하는가”에서 구조적인 차이가 있다. 이 차이를 이해하면 조회 ...
MySQL에서 가장 많이 사용하는 페이징 방식은 LIMIT OFFSET 구조다. 하지만 데이터가 많아질수록 이 방식은 점점 느려지는 문제가 있다. 특히 페이지 번호가 커질수록 쿼리 속도는 급격히 떨어진다. ...
PHP 프로젝트는 초기에 빠르게 기능을 붙이다 보면 Controller가 쉽게 비대해진다. 요청 처리, 검증, 비즈니스 로직, DB 쿼리, 응답 생성이 한 파일에 섞이면서 유지보수가 어려워진다. Control...
서버 CPU 사용률이 높다는 것은 단순히 “바쁘다”는 의미가 아니다. 정상 트래픽인지, 비정상 반복 연산인지, 특정 프로세스 폭주인지 구분해야 한다. 무작정 서버 스펙을 올리는 것은 해결이 아니다. CPU가 왜 올...
PHP는 비교적 빠르게 기능을 만들 수 있는 언어지만, 프로젝트가 커질수록 구조가 무너지기 쉽다. 초기에 패턴과 책임 분리를 정해 두지 않으면, 기능 추가와 수정이 어려운 형태로 굳어지기 때문이다. 실무에서는...