Express로 백엔드 API를 개발하다가 서버 콘솔에 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 로그가 뿜어져 나오며 응답이 꼬이거나 서버 프로세스가 방해받는 현상을 경험해봤을 것이다.클라이언트 요청 하나에 처리 결과를 보내려고 했을 뿐인데 무심하게···
웹 개발을 하다 보면 버튼 클릭, 마우스 호버, 스크롤 등의 이벤트로 요소의 스타일을 동적으로 변경해야 하는 순간이 자주 온다. 대부분의 개발자들은 jQuery 시절부터 배운 방식대로 className을 문자열로 직접 조작하거나, 또는 classList 메서드를 제대로 이해하지 못한 채 복잡한 코드를 작성하고 있다. 이번에는 DOM 요소의 클래스를 안전하고···
겨울이 다가오면서 난방비 걱정이 늘어난다. 많은 사람들이 난방비 고지서를 받고 난 뒤에야 후회하는데, 사실 정부에서 제공하는 난방비 지원 제도가 있다는 걸 모르거나 신청 시기를 놓친다. 가장 안타까운 점은 자격이 있으면서도 신청하지 않아 혜택을 받지 못하는 경우가 대부분이라는 것이다. 이번에는 난방비 지원금이 뭔지, 누가 받을 수 있는지, 정확히 언제 어떻···
직장인이라면 매년 건강검진을 받는다. 다만 많은 사람들이 검진 후 나온 본인부담금을 그냥 넘어가고 만다. 사실 이 비용의 일부는 의료비 공제로 환급받을 수 있는데, 절차를 모르거나 까먹어서 챙기지 못하는 경우가 대부분이다. 이번에는 건강검진 본인부담금을 어떻게 확인하고, 연말정산에서 제대로 환급받는지 정리해서 알려주겠다. 건강검진 본인부담금, 왜 환급받을 ···
웹 애플리케이션을 운영하다 보면 사용자가 10MB가 넘는 고화질 사진을 그대로 업로드해 서버 메모리가 튀거나 네트워크 대역폭이 순식간에 고갈되는 현상을 경험해봤을까?대부분의 서비스에서는 업로드 용량 제한 알림 팝업을 띄우거나 서버 백엔드에서 GD, ImageMagick 같은 도구로 썸네일을 생성하는 방식을 사용한다. 다만 클라이언트 브라우저 메모리 안에서 ···
수동으로 브라우저를 켜고 회원가입부터 결제 페이지까지 일일이 클릭하며 테스트하다 지친 경험이 있을 것이다. 다만 막상 E2E(End-to-End) 테스트 자동화를 도입하려 해도 Cypress와 Playwright 중 어떤 도구를 골라야 할지 몰라 망설이는 개발자가 많다. 이번에는 두 도구가 정확히 어떻게 다른지, 왜 필요한지, 그리고 실제 프로젝트에 어떻게···
매달 청약통장에 자동이체로 돈을 꼬박꼬박 내면서도 정작 소득공제 혜택은 제대로 챙기지 못하는 직장인이 많다.청약통장을 그저 내 집 마련용 아파트 분양 수단으로만 생각하고, 국세청이나 은행에 필요한 등록 절차를 빼먹는 것이 주된 이유다.이번에는 주택청약종합저축의 소득공제 자격 조건부터 공제 한도, 혜택을 챙기기 위한 실전 등록 절차까지 한눈에 알아보기 쉽게 ···
PHP 프로젝트를 관리하다 보면 Composer를 사용해서 의존성을 설치한 후에도 갑자기 'Class not found' 에러가 발생하곤 한다. 특히 네임스페이스를 사용하는 라이브러리를 새로 추가했을 때나, 프로젝트 구조를 변경한 후에 이런 문제를 자주 마주친다. 다만 대부분의 개발자들은 Composer의 오토로드 메커니즘이 정확히 어떻게 동작하는지 모른 ···
매달 신용카드나 체크카드를 긁으면서 정작 연말정산에서 얼마나 세금을 돌려받을 수 있는지 고민해봤을 것이다.다만 카드 종류별 공제율 차이나 세법 기준을 잘 몰라서 무작정 카드 하나만 쓰다가 환급 기회를 놓치는 경우가 많다.이번에는 카드 소득공제의 핵심 원리부터 연봉별 최적의 신용카드·체크카드 사용 비율, 그리고 당장 실천할 수 있는 절약 팁까지 알차게 정리해···
매달 휴대폰 요금이 나올 때마다 한숨이 나온다면 당신만이 아니다. 같은 데이터량을 쓰는데도 요금제마다 5만 원대 차이가 나는 경우가 부지기수다. 문제는 대부분의 직장인이 처음 가입한 요금제를 그대로 유지하고 있다는 점이다. 요금제는 시간이 지날수록 새로운 상품이 출시되고, 내 사용 패턴과 맞는 더 싼 요금제가 생겨난다. 이번에는 현재 내가 내고 있는 휴대폰···
긴 텍스트가 박스를 벗어날 때 어떻게 처리할지는 웹 개발에서 자주 만나는 문제다. 카드 레이아웃, 리스트 아이템, 댓글 목록처럼 고정된 너비에 텍스트를 맞춰야 할 때가 많기 때문이다. 다만 많은 개발자들은 CSS의 text-overflow나 JavaScript의 substring()을 막무가내로 섞어서 쓰거나, 불필요한 라이브러리를 끌어오곤 한다. 이번에는···
대용량 데이터를 동기식으로 처리하거나 외부 API를 대량 호출할 때 화면에 PHP Fatal error: Maximum execution time of 30 seconds exceeded 에러가 발생하며 작업이 멈춘 경험이 있을 것이다.다만 단순 타임아웃 증가로 피할 수 있는지 아니면 코드의 구조적 문제인지 정확한 원인이나 해결책을 모르는 경우가 많다.이번···
매달 월급에서 나가는 소득세를 조금이라도 더 돌려받고 싶다는 고민을 해봤을 거다. 연말정산 시기가 다가오면 세금 공제 항목을 하나라도 더 찾으려고 애쓰지만 정작 가성비가 가장 높은 제도를 놓치는 사람들이 많다.다만 고향사랑기부제라는 말을 들어봤어도 나와 상관없는 지방 지자체 후원 정도로만 생각하거나 신청 절차가 까다로울 것 같아 그냥 지나치는 경우가 많다.···
급여명세서를 꼼꼼히 본 적 있는가. 대부분의 직장인은 월급만 확인하고 공제 항목은 그냥 넘어간다. 그 사이 부양가족공제, 인적공제 같은 세금혜택을 제대로 못 챙기는 경우가 많다. 특히 배우자나 부모님을 부양하는 경우, 자녀가 있는 경우라면 더욱 그렇다. 이번에는 내 급여에서 실제로 빠져나가는 세금을 줄일 수 있는 '인적공제' 제도가 무엇인지, 어떤 대상에게···
배열에서 중복 값을 제거하거나, 객체처럼 키-값을 빠르게 찾아야 할 때 대부분의 개발자들은 for 루프를 돌리거나 filter() 메서드를 중첩해서 사용한다. 다만 이런 방식들은 느리고 코드도 복잡해진다. 자바스크립트의 Map과 Set은 이런 상황에서 훨씬 효율적이고 명확한 해결책을 제공하는데, 많은 개발자들이 여전히 배열 메서드만 고집한다. 이번엔 Map···
백엔드 API 개발이 늦어져 프론트엔드 화면 구현이나 단위 테스트를 진행하지 못하고 무작정 기다린 경험이 있을 것이다.다만 정식 API가 나올 때까지 컴포넌트 내부에 임시 데이터를 하드코딩하거나 fetch 함수를 직접 수정하는 방식은 나중에 코드를 정리할 때 버그를 유발하기 쉽다.이번에는 네트워크 계층에서 실제 HTTP 요청을 가로채는 MSW(Mock Se···
해외여행을 떠나거나 해외 직구 사이트에서 물건을 살 때 생각지도 못한 환전 수수료나 해외 결제 수수료 때문에 예상보다 지출이 컸던 경험이 있을 거다. 분명 원화 기준으로 계산하고 결제했는데 청구서에 원화 결제 수수료(DCC)까지 붙어 추가 비용이 나간 것을 보면 속이 쓰리다. 다만 카드사마다 내놓는 해외 특화 카드의 종류가 워낙 다양하고 충전 방식이나 환전···
PHP로 개발하다 보면 갑자기 콘솔에 떠오르는 경고 메시지가 있다. 바로 'Undefined property' 경고다. 대부분의 개발자들은 이 경고를 무시하거나 에러 로그를 끄는 식으로 대처한다. 다만 이게 왜 떴는지, 정확히 뭐가 잘못된 건지를 모른 채 넘어가는 경우가 많다. 이번에는 Undefined property 오류가 정확히 뭔지, 왜 발생하는지,···