프로젝트 규모가 커질수록 기존 코드를 수정할 때 예기치 않은 버그가 발생할까 봐 불안해했던 경험이 있을 것이다.다만 대부분의 개발자들은 테스트 코드 작성 방법을 제대로 모른 채 일일이 브라우저에서 직접 입력값을 넣어가며 수동 테스트를 진행하곤 한다.이번에는 PHPUnit을 이용한 단위 테스트(Unit Test)의 기본 개념부터 왜 필요한지, 그리고 외부 A···
PHP에서 배열을 다루다 보면 특정 조건에 맞는 요소만 추출하거나, 불필요한 데이터를 걸러내야 할 상황이 자주 생긴다. 대부분의 개발자들은 foreach 루프를 돌면서 if문으로 하나하나 체크하고 새로운 배열에 담는 방식을 써왔을 것이다. 다만 array_filter 함수를 제대로 이해하고 활용하면, 코드를 훨씬 간결하게 만들 수 있을 뿐 아니라 가독성과 ···
한글을 포함한 데이터를 다룰 때 문자 깨짐이나 인코딩 오류를 경험해봤을까? 특히 외부 API에서 받은 데이터나 사용자 입력값을 처리할 때 갑자기 '?'나 알 수 없는 기호로 변환되는 현상을 목격한 개발자라면 알 것이다. 다만 대부분은 그 원인이 정확히 뭔지, 왜 인코딩이 깨지는지, 어떻게 해야 하는지 제대로 알지 못한 채 인터넷에서 가져온 코드를 대충 복사···
외부 결제 PG사나 알림 서비스 등을 연동하면서 웹훅(Webhook) 수신 엔드포인트를 만들어본 경험이 있을 것이다.다만 대부분의 개발자들은 URL만 노출되어 있으면 누구나 위조된 HTTP 요청을 보낼 수 있다는 위험성을 간과한 채, 수신된 데이터를 그대로 DB에 반영하곤 한다.이번에는 웹훅 위변조 공격이 왜 위험한지, 이를 방지하기 위한 HMAC SHA2···
PHP 개발을 하다 보면 거의 매일 마주치는 에러가 있다. 바로 "PHP Warning: Undefined Index" 경고다. 폼 데이터를 받거나 배열을 다룰 때 존재하지 않는 키에 접근하면 튀어나오는 이 경고는 대부분의 개발자들이 무시하거나 에러 리포팅 설정을 낮춰서 감춘다. 하지만 이 경고는 무시하면 안 되는 보안 취약점의 신호다. 이번에는 "Unde···