PHP 개발자라면 serialize()와 unserialize()를 캐싱이나 세션 저장 용도로 한두 번쯤은 써봤을 것이다. 그런데 대부분의 개발자들은 unserialize()가 얼마나 위험한지 모른 채 외부에서 들어오는 데이터를 그냥 역직렬화하고 있다. 공격자가 조작한 직렬화 문자열을 unserialize()에 넘기면 예상치 못한 객체 생성과 메서드 실행으···
퇴근 후나 주말에 갑자기 몸이 아파 병원이나 약국을 찾았다가 평소보다 진료비나 약값이 더 많이 나와 당황한 경험이 있을 것이다. 단순한 기분 탓이 아니라 실제로 특정 시간대와 휴일에는 법적으로 의료비 할증이 적용되기 때문이다.다만 이러한 '야간·휴일 가산제도'의 정확한 적용 시간과 접수 기준을 잘 몰라 내지 않아도 될 가산금을 그대로 지불하는 경우가 많다.···
구글 Search Console을 설치한 뒤 데이터가 쌓이는 걸 보면서 신기하긴 한데, 정확히 뭘 의미하는지 헷갈리는 개발자가 많다. 특히 '크롤 통계' 탭의 수치들이 실제 검색 성과와 어떤 관계가 있는지, 그리고 그 수치들을 어떻게 해석해야 하는지를 제대로 아는 사람은 드물다. 이번에는 Search Console의 핵심 지표들을 정확히 뭔지, 왜 중요한지···
매달 들어가는 장보기 비용이나 외식비가 계속 올라 가계부에 부담을 느끼는 경우가 많다. 다만 전통시장이나 동네 골목상권에서 쓸 수 있는 온누리상품권 할인 혜택이 있다는 사실을 알면서도, 구매 방식이 어렵거나 사용이 번거롭다는 이유로 놓치는 사람들이 많다. 이번에는 온누리상품권이 어떤 혜택을 제공하는지, 기존에 쓰던 신용·체크카드로 어떻게 쉽게 활용할 수 있···
휴대폰 요금명세서를 자세히 살펴본 적 있나. 기본료, 데이터료, 부가서비스료 외에 '기기값'이라는 항목이 계속 빠져나가고 있는 건 아닐까. 많은 직장인들이 자신도 모르는 사이에 이미 끝난 약정 기간에 대한 기기값을 매달 납부하고 있다. 심지어 그 금액이 생각보다 크다는 게 문제다. 이번엔 휴대폰 기기값 정산 구조를 명확히 파악하고, 불필요한 납부를 중단하는···
웹 서비스에서 모달(Modal) 팝업을 구현할 때 z-index가 꼬이거나 배경 스크롤이 멋대로 움직이는 현상을 경험해봤을 것이다. 다만 대부분의 개발자들은 여전히 z-index: 99999 같은 임시방편 스크립트를 남발하거나 중량 라이브러리를 설치해서 해결하려 한다. 이번에는 최신 HTML5 표준 요소인 dialog 태그와 showModal() 메서드가 ···
휴대폰이 떨어져 깨진 경험, 누구나 한 번쯤 있다. 그래서 많은 사람들이 휴대폰 보험에 가입한다. 하지만 실제로 청구할 때가 되면 자기부담금이 생각보다 크거나, 이미 보험료가 충분히 나가서 결국 손해라는 생각이 든다. 문제는 휴대폰 보험의 조건을 모르고 자동으로 갱신하는 직장인이 대부분이라는 것. 이번에는 휴대폰 보험이 정말 필요한지, 어떤 사람은 꼭 들어···
웹사이트를 오픈하고 구글 Search Console에서 색인 생성 여부를 확인하다가 '크롤링됨 - 현재 색인 생성되지 않음' 메세지를 보고 당황한 적이 있을 것이다. 구글봇이 내 사이트에 방문해서 페이지를 분명 읽어갔는데도 정작 구글 검색 결과에는 등록해주지 않는 기이한 상황이다.다만 많은 개발자나 사이트 관리자들은 정확한 원인을 모른 채 무작정 Searc···
Google과 Bing에 사이트를 등록하는 건 많이 다루지만, 중국 시장을 노리는 개발자들이 놓치는 게 있다. 바로 Baidu 검색 엔진이다. 중국 내 검색 시장 점유율이 압도적인데도 대부분의 한국 개발자는 Baidu Webmaster Tools 존재 자체를 모르거나, 등록 과정이 복잡할 거라 생각해서 건너뛴다. 실제로 Baidu 검색 노출은 Google ···
자바스크립트로 배열을 다루다 보면 for 루프를 반복적으로 쓰거나, 복잡한 중첩 구조로 데이터를 처리한 경험이 있을 것이다. 다만 대부분의 개발자들은 map, filter, reduce 같은 고차 함수가 정확히 뭐하는 건지, 언제 써야 하는지, 성능은 괜찮은지 제대로 알지 못한 채 구글에서 가져온 코드를 그냥 복사해 붙인다. 이번에는 배열 메서드의 동작 원···
직장에서 급여를 받으면서도 정작 나한테 돌아오는 혜택이 뭐가 있는지 모르는 사람이 많다. 특히 건강검진이나 카드 할인 같은 눈에 띄는 것들만 챙기고, 작은 금액이라고 생각해서 무시하는 게 있다. 그 중 하나가 바로 '우유펀드' 같은 복리후생 프로그램다. 회사가 준비해놓은 혜택인데 신청 방법을 몰라서 그냥 지나치는 경우가 대부분이다. 이번에는 직장인이 챙길 ···
백엔드 로직 하나 수정하고 포스트맨으로 일일이 엔드포인트를 호출하며 테스트했던 경험이 있을 것이다. 코드가 복잡해질수록 수정 위치와 멀리 떨어진 다른 API가 갑자기 터지는 사이드 이펙트를 일일이 손으로 찾아내기는 사실상 불가능에 가깝다. 다만 정확한 테스트 환경 구축 방법이나 데이터베이스 Mocking 처리 기준을 모르는 경우가 많다. 이번에는 Jest와···
냉장고나 세탁기, 에어컨 같은 대형 가전제품을 교체할 때 생각보다 큰 돈이 나가서 부담스러웠던 적이 있을 것이다.다만 정부나 한국전력, 지자체에서 제공하는 고효율 가전제품 구매환급 혜택을 몰라서 제값 다 주고 구매하는 경우가 의외로 많다.이번에는 고효율 가전제품 구매환급 제도가 무엇인지, 누가 대상에 해당하는지, 그리고 어떻게 신청해서 환급금을 챙기는지 핵···
SNS에 글을 공유할 때 예쁜 썸네일이 나오는 경우와 나오지 않는 경우를 본 적 있을까. 대부분의 개발자는 Open Graph 메타태그만 넣고, 이미지를 하드코딩된 파일 경로로 고정해둔다. 하지만 게시글마다 다른 제목, 날짜, 카테고리 정보를 담은 썸네일을 동적으로 생성할 수 있다면 훨씬 더 프로페셔널한 SNS 공유 경험을 만들 수 있다. 이번에는 PHP의···
직장인이라면 매달 급여에서 자동으로 빠져나가는 건강보험료를 당연하게 받아들이고 있을 가능성이 높다. 하지만 실제로는 같은 소득이라도 지역가입자가 내는 보험료보다 훨씬 적게 낼 수 있는 구조다. 더 놀라운 건, 대부분의 직장인이 이 차이를 모르거나 무심코 지나친다는 점이다. 이번에는 직장인 건강보험료 구조를 제대로 이해하고, 실제로 얼마를 절약할 수 있는지 ···
생일이나 기념일에 받은 모바일 기프티콘이나 상품권이 문자메시지 함 구석에 처박혀 잊혀간 적이 한 번쯤 있을 거다.다만 유효기간이 지났다고 해서 그냥 버리거나 포기하는 사람이 생각보다 많다.이번에는 유효기간이 지난 모바일 상품권의 환불 원리와 대상, 그리고 실제로 돈으로 돌려받는 실전 활용 방법을 깔끔하게 정리해서 소개하겠다. 유효기간 지난 모바일 상품권, ···
Node.js 애플리케이션을 실행하려 할 때 Error: listen EADDRINUSE: address already in use :::3000 문구를 만나 당황해본 적이 있을 것이다.다만 왜 이미 사용 중이라고 나오는지 정확한 원인을 몰라 컴퓨터를 재부팅하거나 포트 번호만 임의로 바꾸는 경우가 많다.이번 글에서는 EADDRINUSE 에러가 발생하는 정확···
인스타그램에서 비즈니스 데이터를 자동으로 수집하거나 게시물을 프로그래밍 방식으로 관리하려는 개발자들이 늘어나고 있다. 다만 Meta의 Graph API 문서는 복잡하고, 접근 토큰 발급부터 API 호출까지 실제로 구현하다 보면 인증 오류나 권한 문제에 자주 막힌다. 이번에는 Instagram Graph API v18을 PHP에서 제대로 연동하는 방법을 처음···