PHP에서 문자열을 자르는 작업은 일상적이다. 그런데 한글, 일본어, 중국어 같은 멀티바이트 문자를 다룰 때 substr()을 썼다가 문자가 깨지는 경험을 해봤을까? 대부분의 개발자는 이 문제가 왜 발생하는지, substr()과 mb_substr()의 정확한 차이가 뭔지 모른 채 인터넷에서 찾은 답을 그냥 적용한다. 이번에는 바이트 단위와 문자 단위의 차이···
매달 통장에서 자동이체되는 개인연금보험료. 혹시 그냥 돈이 나간다고만 생각하고 있진 않나. 많은 직장인이 이 보험료가 연말정산에서 세금을 줄여주는 고마운 존재라는 걸 제대로 인식하지 못한다. 더 문제인 건 보험료를 내고 있으면서도 정작 세액공제를 제대로 챙기지 못하거나, 중복 가입으로 인해 공제 한도를 낭비하는 사람이 많다는 것. 이번엔 개인연금보험료에서 ···
개발자들이 동적으로 생성된 요소에 클릭 이벤트를 붙일 때 흔히 하는 실수가 있다. 요소를 생성한 후 그 요소에 직접 이벤트 리스너를 달거나, 새 요소가 추가될 때마다 반복해서 리스너를 붙이는 식이다. 다만 대부분의 개발자들은 이 방식이 왜 비효율적인지, 그리고 얼마나 많은 메모리를 낭비하고 있는지 모른 채 프로젝트를 진행한다.이번에는 JavaScript 이···
직장인들이 매달 자동이체로 내는 체육관, 헬스장, 요가 스튜디오 회원비. 건강을 위해 내는 돈이라 당연히 여기고 지나가는데, 사실 이 비용 일부를 소득공제로 돌려받을 수 있다는 걸 아는 사람은 드물다. 연말정산 때 이 혜택을 놓치면 매년 수십만 원대의 환급금을 그냥 내줄 수 있다. 이번에는 체육관·헬스장 비용을 어떻게 소득공제 항목에 넣고, 연말정산에서 실···
지도 기반 서비스를 만들다 보면 주소를 좌표로 변환하거나, 두 지점 간의 거리를 계산해야 하는 상황이 자주 생긴다. 다만 대부분의 개발자들은 Google Maps Platform이 단순한 지도 표시 도구일 줄 알고, 실제로는 매우 강력한 Geocoding, Distance Matrix, Places 같은 API들이 있다는 걸 모르는 경우가 많다. 이번에는 ···
직장인들이 가장 무심코 내는 지출 중 하나가 바로 커피, 간식, 점심 식사다. 특히 회의 중 제공되는 다과비, 팀 회의 후 카페 시간, 클라이언트와의 식사 같은 비용들이 매달 적잖게 나간다. 다만 이런 비용들을 제대로 분류하면 세금 환급 대상이 될 수 있다는 사실을 아는 사람은 많지 않다. 같은 돈을 쓰더라도 어떻게 처리하느냐에 따라 연말정산에서 십만 원대···
Slack을 업무 커뮤니케이션 도구로 쓰는 팀이라면, 자동화된 알림을 단순히 채널에 뿌리는 것보다 기존 메시지에 스레드로 답장하는 게 훨씬 깔끔하다. 하지만 대부분의 개발자들은 Slack API 문서를 읽어도 thread_ts라는 개념이 명확하지 않아서, 스레드 기능을 포기하고 그냥 일반 메시지만 보낸다. 이번에는 Slack API에서 스레드를 다루는 정확···
휘발유 값이 오르내릴 때마다 주유소 가는 게 한숨이 나온다. 특히 장거리 출퇴근하거나 영업 다니는 직장인이라면 유류비가 월급의 꽤 큰 부분을 차지한다. 다만 대부분의 사람들이 같은 카드로 주유하면서 카드사마다 다른 할인 혜택을 아예 모르고 지나간다. 이번에는 현재 나온 주요 카드사별 유류비 할인 혜택을 정확히 비교해서, 자신에게 맞는 카드를 선택하고 실제로···
웹 서버에 접근할 때 사용자명과 비밀번호를 입력하는 팝업 창을 본 적 있을까. 그것이 HTTP Basic Authentication이다. 대부분의 개발자들은 이 방식이 웹 서버(Nginx, Apache) 설정에서만 가능하다고 생각해서, 애플리케이션 레벨에서 구현할 생각을 안 한다. 하지만 PHP 코드 내에서 직접 Basic Auth를 검증하고 제어할 수 있···
많은 직장인이 독감이나 폐렴구균 백신을 맞을 때 수만 원을 자비로 내고 있다. 다만 기본 건강검진 항목에 백신 접종이 포함되어 있다는 사실을 모르거나, 신청 방법이 복잡해서 놓치는 경우가 대부분이다. 이번에는 직장인이 건강검진 과정에서 무료로 백신을 맞고 검진비까지 절약하는 방법을 정리해서 소개하겠다. 직장인 건강검진에 백신 접종이 포함되어 있다는 걸 아나···
문자열 치환 작업은 웹 개발에서 가장 자주 마주치는 작업 중 하나다. 그런데 대부분의 개발자들은 PHP의 str_replace()만 사용하거나, str_ireplace()와의 차이를 제대로 모른 채 상황에 맞지 않는 함수를 쓰고 있다. 특히 사용자 입력값을 처리하거나 동적 콘텐츠에서 특정 단어를 치환해야 할 때, 대소문자 처리 실수로 인해 예기치 않은 결과···
직장인들의 급여명세서를 보면 건강보험료가 매달 자동으로 빠져나간다. 다만 많은 사람들은 이 금액이 정말 정확한지, 혹은 더 줄일 수 있는 방법이 있는지 제대로 확인해본 적이 없다. 회사에서 자동으로 계산해서 빼가니까 맞겠지 하면서 그냥 지나친다. 그런데 실제로는 본인의 소득 구조에 따라 건강보험료를 합법적으로 줄일 수 있는 방법들이 있다. 이번에는 직장인이···
문자열에서 특정 패턴을 찾아 바꾸는 작업은 개발에서 정말 자주 마주친다. 주소록 데이터를 정제할 때, API 응답값의 특수문자를 처리할 때, URL 쿼리 파라미터를 인코딩할 때도 그렇다. 대부분의 개발자들은 그냥 replace()를 쓰거나, 정규표현식과 g 플래그를 붙여서 구글에서 본 코드를 복사한다. 다만 replace()와 replaceAll()의 차이···
월급통장에 찍히는 금액을 보고 깜짝 놀란 경험이 있을 것이다. 명시된 연봉보다 훨씬 적은 금액이 들어오기 때문이다. 세금과 보험료 때문이지만, 정작 이 중에 얼마나 많은 금액을 제대로 환급받지 못하고 있는지는 모르는 사람이 대부분이다. 소득공제와 세액공제의 차이를 모르면, 매달 착실히 급여에서 빠져나가는 돈을 그냥 흘려보내게 된다. 소득공제와 세액공제, 뭐···
JavaScript에서 객체를 다루다 보면 Object.keys(), Object.entries(), Object.assign() 같은 메서드들을 마주친다. 다만 대부분의 개발자들은 이 메서드들의 정확한 동작 원리와 언제 어떤 상황에서 써야 하는지 모른 채 인터넷에서 가져온 코드를 그냥 복사해 붙인다. 이번에는 자주 쓰이는 Object 정적 메서드들이 정확···
카카오 로그인을 구현한 후 사용자 정보를 서버에서 직접 조회해야 할 상황을 겪은 적 있을까. 대부분의 개발자들은 클라이언트에서 받은 토큰으로 카카오 API를 호출하거나, 공식 문서의 예제를 그냥 복사해서 쓰다가 토큰 검증 실패나 필드 누락 같은 오류에 부딪힌다. 이번에는 카카오 Developers REST API에서 사용자 정보를 안전하게 조회하는 방법을 ···
직장인이라면 매달 급여명세서에서 자동 공제되는 항목들을 꼼꼼히 본다. 하지만 연말정산 때 돌려받을 수 있는 항목은 생각보다 많은데, 대부분 소득세와 건강보험료만 챙기고 지나간다. 특히 의료 목적의 건강용품과 의약외품은 일반 제품이라고 착각해서 환급 대상이 아니라고 생각하는 사람이 많다. 이번에는 실제로 세액공제를 받을 수 있는 의료용품과 의약외품이 무엇인지···
사용자 입력 데이터를 받을 때마다 직접 정규표현식을 작성하고 있지는 않을까. 많은 개발자들이 각 데이터 타입마다 일일이 preg_match()를 짜거나, 검증 로직을 중복해서 만든다. 다만 PHP에는 이미 내장된 filter_var() 함수가 있어서 이메일, URL, IP, 정수, 실수 등 대부분의 타입을 한 줄로 검증할 수 있다는 사실을 모르는 경우가 많···