JavaScript 이벤트 위임으로 동적 목록 처리하기 — 직접 바인딩과 비교 검증
도입 페이지가 처음 열릴 때 모든 버튼에 클릭 리스너를 연결했는데, 이후 추가한 버튼만 반응하지 않는 경우가 있다. 원인은 새 요소가 초기 querySelectorAll() 결과에 포함되지 않았기 때문이다. ...
서버 검색 결과: 46개
도입 페이지가 처음 열릴 때 모든 버튼에 클릭 리스너를 연결했는데, 이후 추가한 버튼만 반응하지 않는 경우가 있다. 원인은 새 요소가 초기 querySelectorAll() 결과에 포함되지 않았기 때문이다. ...
도입 최소 권한은 GRANT 문장을 작성하는 것으로 끝나지 않는다. 애플리케이션이 필요한 작업은 성공하고, 스키마 변경·계정 관리·시스템 테이블 조회는 실패하는지 실제 계정으로 확인해야 한다. 아래 SQL은 M...
도입 fetch()는 HTTP 500에서 자동으로 예외를 던지지 않으며, 업무에 맞는 제한 시간도 대신 정해주지 않는다. 사용자는 이미 화면을 떠났는데 요청이 계속되거나, 실패한 POST가 재시도되어 중복 결제...
도입 덤프 명령의 성공은 마이그레이션 완료가 아니다. 구조, 데이터, 루틴·이벤트, 문자셋과 애플리케이션 동작이 대상에서 검증되어야 한다. 이 글은 InnoDB 데이터베이스 하나를 새 서버로 옮기는 절차와 각 ...
도입 웹 서비스를 직접 운영하려면 애플리케이션이 실행될 컴퓨터가 필요하다. 물리 서버를 구매하면 초기 비용과 설치 시간이 발생하고, 트래픽 변화에 맞춰 용량을 조정하기도 어렵다. Amazon Elasti...
도입 서비스 운영에서 “안정적이다”는 표현은 모호하다. 기준이 없으면 장애 판단도 달라진다. 그래서 실무에서는 숫자로 목표를 정의한다. 대표 개념이 SLA, SLO, SLI다. 세 개는 항상 같이 등...
도입 외부 API나 다른 서비스가 느려지면 내 서비스까지 같이 느려지는 경우가 많다. 문제는 실패 자체보다 장애가 연쇄적으로 퍼지는 상황이다. 이걸 막기 위한 대표 패턴이 Circuit Breake...
도입 기능 배포는 했지만 사용자에게 바로 공개하면 위험한 경우가 많다. 특히 결제, 정산, 신규 UI 같은 기능은 문제가 생기면 영향 범위가 크다. 이때 사용하는 방식이 Feature Flag다. ...
Metrics, Logs, Traces의 정의를 각각 외워도 장애가 발생했을 때 연결하지 못하면 조사 시간이 줄지 않는다. 이 글은 PHP API의 응답 시간이 늘고 오류율이 상승한 상황을 가정해 이상 감지 → 실패...
도입 서비스가 여러 개로 분리되면 요청 하나의 흐름을 추적하기 어려워진다. 로그만으로는 어디서 느려졌는지, 어디서 실패했는지 파악이 힘들다. 이 문제를 해결하는 방식이 Distributed Trac...