긴 텍스트가 박스를 벗어날 때 어떻게 처리할지는 웹 개발에서 자주 만나는 문제다. 카드 레이아웃, 리스트 아이템, 댓글 목록처럼 고정된 너비에 텍스트를 맞춰야 할 때가 많기 때문이다. 다만 많은 개발자들은 CSS의 text-overflow나 JavaScript의 substring()을 막무가내로 섞어서 쓰거나, 불필요한 라이브러리를 끌어오곤 한다. 이번에는···
급여명세서를 꼼꼼히 본 적 있는가. 대부분의 직장인은 월급만 확인하고 공제 항목은 그냥 넘어간다. 그 사이 부양가족공제, 인적공제 같은 세금혜택을 제대로 못 챙기는 경우가 많다. 특히 배우자나 부모님을 부양하는 경우, 자녀가 있는 경우라면 더욱 그렇다. 이번에는 내 급여에서 실제로 빠져나가는 세금을 줄일 수 있는 '인적공제' 제도가 무엇인지, 어떤 대상에게···
배열에서 중복 값을 제거하거나, 객체처럼 키-값을 빠르게 찾아야 할 때 대부분의 개발자들은 for 루프를 돌리거나 filter() 메서드를 중첩해서 사용한다. 다만 이런 방식들은 느리고 코드도 복잡해진다. 자바스크립트의 Map과 Set은 이런 상황에서 훨씬 효율적이고 명확한 해결책을 제공하는데, 많은 개발자들이 여전히 배열 메서드만 고집한다. 이번엔 Map···
PHP로 개발하다 보면 갑자기 콘솔에 떠오르는 경고 메시지가 있다. 바로 'Undefined property' 경고다. 대부분의 개발자들은 이 경고를 무시하거나 에러 로그를 끄는 식으로 대처한다. 다만 이게 왜 떴는지, 정확히 뭐가 잘못된 건지를 모른 채 넘어가는 경우가 많다. 이번에는 Undefined property 오류가 정확히 뭔지, 왜 발생하는지,···
월급통장을 자주 확인하는 직장인이라면 알 만한 사실이 있다. 월급이 들어왔는데 예상과 다르게 적거나, 명세서를 정확히 본 적이 거의 없다는 거다. 그러면서도 정작 받을 수 있는 환급금이 따로 있다는 걸 모르는 사람이 대부분이다. 이번에는 직장인이 월급 외에 챙길 수 있는 '숨은 환급금' 3가지를 정확히 어디서, 어떻게 받는지 정리해서 알려주겠다. 1. 근로···
검색 엔진이 사이트맵을 크롤링할 때 페이지의 수정 시간을 잘못 인식하면, 검색 결과에 엉뚱한 날짜가 표시되거나 오래된 콘텐츠로 판단되어 순위가 떨어진다. 대부분의 개발자들은 사이트맵에 lastmod 태그를 넣기만 하면 끝이라고 생각하지만, 실제로는 파일의 물리적 수정 시간, HTTP Last-Modified 헤더, 그리고 데이터베이스의 업데이트 시간까지 모···
검색 엔진에 노출되지 않는 페이지들을 살펴보면 공통점이 있다. 바로 필수 메타 태그가 빠져 있거나 잘못 설정되어 있다는 것이다. 많은 개발자들이 페이지를 만들 때 제목과 설명 태그 정도만 대충 넣고 넘어가는데, 검색 엔진이 제대로 크롤링하고 색인하려면 훨씬 더 많은 메타데이터가 필요하다. 이번에는 검색 노출을 막는 메타 태그 누락 문제를 정확히 진단하고, ···
직장인이라면 급여에서 자동으로 빠져나가는 항목들이 있다. 건강보험료, 국민연금, 고용보험 같은 4대보험은 당연하고, 여기에 회사에서 가입해주는 단체보험, 개인적으로 드는 실비보험, 암보험, 연금보험까지 겹겹이 쌓여 있다. 문제는 대부분 자동이체라 '얼마나 많은 보험에 들어 있는지조차 모르는 사람'이 많다는 것이다. 더 심각한 건 중복 가입이다. 직장을 옮기···
직장인이라면 회사 단체보험, 개인 가입 보험, 카드사 자동가입 보험까지 여러 겹으로 보험을 들어놓은 경우가 많다. 문제는 같은 보장 내용을 중복으로 내고 있어도 대부분 자각하지 못한다는 것이다. 연간 수십만 원, 심하면 100만 원 이상을 낭비하고 있을 수 있다. 이번에는 내가 중복으로 가입한 보험이 무엇인지 확인하고, 정말 필요한 것만 남기는 실전 방법을···
배열의 모든 요소를 순회하면서 누적된 결과값을 계산해야 할 때가 있다. 장바구니 총액 계산, 배열 요소 조건부 필터링 후 합산, 또는 복잡한 데이터 변환 같은 작업 말이다. 다만 대부분의 개발자들은 반복문(foreach)으로 변수를 하나하나 더하거나 빼면서 코드가 길어지고 유지보수하기 어려워진다는 걸 경험했을 것이다. 이번에는 PHP array_reduce···
직장인이라면 연말정산을 앞두고 세금 환급을 기대하지만, 실제로 받아보면 생각보다 적어서 실망하는 경우가 많다. 그 이유 중 하나가 의료비 공제를 제대로 챙기지 못했기 때문이다. 많은 사람들이 병원비를 낸 후 영수증을 보관하는 것조차 깜빡하고, 공제 대상이 무엇인지 헷갈려서 그냥 지나친다. 다만 작은 습관으로 1월부터 의료비를 기록해두면, 12월 연말정산 때···
신용카드 명세서를 받을 때마다 "어? 이달엔 왜 더 많이 썼지?" 하고 깜짝 놀라본 적 있을 것 같다. 통장에서 자동이체로 빠져나가는 금액들을 정확히 파악하지 못하면, 모르는 새에 매달 수십만 원이 불필요한 곳으로 흘러간다. 특히 구독형 서비스(OTT, 피트니스, 앱 구독료)는 한 번 등록하면 잊기 쉽고, 써보지도 않는 서비스를 반복결제하는 경우가 정말 많···
많은 개발자와 마케터들이 Google Search Console에만 집중하느라 Bing 검색 엔진을 놓친다. 다만 Bing은 전 세계 검색량의 약 3~5%를 차지하고 있고, 특히 기업 사용자와 Windows 통합 검색에서 여전히 중요한 역할을 한다. 게다가 검색 노출 설정 방식이 Google과 다르기 때문에 제대로 알지 못하면 Bing에서는 아예 색인되지 ···
휴대폰 요금제를 선택할 때 대부분의 사람들이 현재 가입한 통신사에서 자동으로 갱신하거나, 어떤 요금제가 있는지도 모르고 그냥 판매원이 추천하는 대로 가입한다. 같은 데이터량(예: 30GB)과 통화료를 쓰는데도 통신사와 요금제 선택에 따라 매달 1만 원 이상 차이가 나는 경우가 많다는 사실을 알고 있을까? 이번에는 실제 알뜰폰·MNO 3사의 요금제를 체계적으···
배열에서 특정 키가 존재하는지 확인할 때 많은 개발자들이 isset()과 array_key_exists()를 같은 것으로 생각한다. 다만 둘은 null 값을 처리하는 방식이 완전히 다르고, 이 차이를 모르면 버그를 찾기 어렵다. 이번에는 두 함수가 정확히 뭐가 다른지, 언제 뭘 써야 하는지, 실전 예제로 완벽하게 정리해서 소개하겠다. 1단계: 기초 개념 -···
직장인들은 매달 급여를 받을 때 세금과 보험료가 자동으로 빠져나간다. 다만 대부분 '이 정도는 당연한 것'이라고 생각하고 명세서를 제대로 살펴보지 않는다. 하지만 실제로는 과다하게 공제되거나, 잘못 계산된 경우가 생각보다 많다. 이번에는 급여명세서에서 확인해야 할 공제 항목과 실수하기 쉬운 부분들을 정리해서 소개한다. 급여명세서, 왜 꼼꼼히 봐야 할까? 급···
PHP로 배열을 다루다 보면 특정 키가 존재하는지, 값이 있는지 확인해야 할 순간이 자주 온다. 다만 대부분의 개발자들은 isset(), array_key_exists(), in_array() 세 함수의 차이를 명확히 모른 채 상황에 맞지 않는 함수를 써서 버그를 만든다. 이번에는 이 세 함수가 정확히 뭐가 다르고, 언제 어떤 걸 써야 하는지, 그리고 각각···
구글 서치 콘솔을 확인해보니 모바일에서는 검색 노출이 잘 되는데 PC에서는 떨어져 있다거나, 반대 상황을 경험해봤을까? 혹은 구글에서 보낸 알림메일에 "Mobile-First Indexing" 같은 낯선 용어가 나와서 막막했던 경험이 있을까? 대부분의 웹 개발자와 SEO 담당자들은 이게 정확히 뭔지, 왜 신경 써야 하는지, 어떻게 대비해야 하는지 모른 채로···