반응형

Programming/PHP 42

PHP 8의 새로운 기능 – 개발자라면 꼭 알아야 할 변화들

PHP 8은 단순한 버전 업데이트가 아닙니다.성능 향상은 물론이고, 개발자가 코드를 더 간결하고 안전하게 작성할 수 있도록 여러 혁신적인 기능이 도입되었습니다.이번 글에서는 PHP 8의 핵심 기능 7가지를 정리해보았습니다.기존 PHP 7과의 차이도 함께 살펴보며, 실무에서 어떻게 활용할 수 있는지도 간단히 소개해드릴게요.1. JIT (Just In Time Compiler)가장 큰 변화는 JIT입니다.PHP 8에서는 Zend 엔진에 JIT 컴파일러가 추가되어 코드 실행 속도가 크게 향상됩니다.기존: 인터프리터 방식으로 매번 코드를 해석PHP 8: JIT으로 일부 코드를 기계어로 바로 컴파일 → 실행 속도 개선특히 수치 계산, 이미지 처리, 머신러닝 등 반복 연산이 많은 작업에서 성능 향상이 큽니다.웹 애..

Programming/PHP 2025.04.08

함수 대신 연산자 사용으로 성능을 높이는 간단한 방법

PHP 개발을 하다 보면 아무 생각 없이 함수를 사용하곤 합니다.그런데 경우에 따라선 함수보다 연산자를 사용하는 것이 더 빠르고 효율적일 수 있다는 사실, 알고 계셨나요?오늘은 자주 사용되는 함수들을 연산자로 대체했을 때의 성능 차이와, 실제로 어떻게 코드를 개선할 수 있는지 알아보겠습니다.1. strlen() 대신 isset($str[$n]) 사용예시)// 기존 코드if (strlen($str) > 5) { // 처리}strlen() 함수는 문자열의 길이를 계산하기 때문에, 내부적으로 모든 문자를 확인하게 됩니다.그런데 우리가 실제로 알고 싶은 건, 그 길이가 일정 이상이냐는 것이죠.아래와 같이 isset()을 사용하면 더 빠르게 판단할 수 있습니다.// 최적화된 코드if (isset($str[5..

Programming/PHP 2025.04.08

PHP 루프, 이렇게만 바꿔도 2배 빨라집니다!

PHP 루프 성능 최적화 팁불필요한 반복을 줄여 속도 높이기루프는 PHP에서 정말 자주 사용하는 구조입니다. 그런데 잘못 사용하면,성능 저하의 주범이 되기도 하죠.이번 글에서는 실무에서 자주 발생하는 비효율적인 루프 코드를더 빠르고 효율적으로 바꾸는 팁을 알려드릴게요.1. count()는 루프 밖에서 한 번만 계산하세요// 비효율적인 코드for ($i = 0; $i 위 코드는 count($items)를 루프 돌 때마다 계속 호출하게 됩니다.// 최적화된 코드$length = count($items);for ($i = 0; $i 또는 가능하다면 foreach를 사용하세요. 더 빠르고 깔끔합니다.2. 루프 안에서 함수 호출은 최소화하세요// 비효율적인 코드foreach ($users as $user) { ..

Programming/PHP 2025.04.08

[PHP] 현재 실행 경로 역추적 방법 (디버깅)

debug_backtrace()을 이용한 디버그 로그 저장하는 예제 $fp = fopen("/log/debug_backtrace.log", "a+");if($fp){ fwrite($fp, date("Ymd His")." - DEBUG_BACKTRACE - ".var_export(debug_backtrace(), true).PHP_EOL); fclose($fp);} 참고!! debug_backtrace 함수란??PHP에서 debug_backtrace 함수는 현재 실행 중인 함수 호출 스택을 배열 형태로 반환하는 데 사용됩니다. 이 함수는 디버깅과 오류 추적에 매우 유용합니다. 함수 호출 스택의 각 항목에는 호출된 파일, 줄 번호, 함수 이름, 인수 등이 포함됩니다.기본 구문은 다음과 같습니다:p..

Programming/PHP 2025.03.06

[PHP] CURL 결과에서 HTTP 프로토콜 헤더 바디 분리

PHP에서의 curl 사용시 결과에서 HTTP 프로토콜의 헤더 부분화 바디 부분을 분리 해야 될 경우 사용하는 방법입니다. 헤더를 얻으려면 CURLOPT_HEADER 이 부분이 반드시 true로 되어 있어야 결과에서 헤더와 바디가 같이 나옵니다.curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, true); // HTTP 헤더를 받고 싶을때curl_setopt($ch, CURLOPT_VERBOSE, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_SSL_..

Programming/PHP 2025.03.06

[PHP] 폴더 내 파일 목록 불러오는 한 줄 소스

예제 소스$fileListArr = array_diff(scandir('/path/to/directory'), array('.', '..')); // 경로 지정 scandir 함수를 이용하여 디렉토리 내의 파일 목록을 불러온 후 array_diff 함수를 이용하여, '.', '..' 와 같은 불필요한 데이터를 걸러내고, $fileListArr 변수에 배열 형태로 값을 지정합니다.   참고!! scandir 함수는?scandir 함수는 PHP에서 디렉토리의 파일 및 하위 디렉토리 목록을 얻는 데 사용됩니다. scandir 함수의 기본 구문은 다음과 같습니다.php 소스scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resou..

Programming/PHP 2025.03.06

[PHP] CURL을 이용한 API 데이터 전송

대부분 API 데이터 전송이라 함은 API Key 를 이용한 1:1 데이터 전송을 말한다 Api Key 는 누출이 되면 안되는 중요한 값으로 유출에 위험성이 있는 POST 및 GET으로는 전송하지 않는다. CURL의 Header 값을 통해 POST 및 GET 보다는 좀더 안전한 방법으로 Api key 를 체크하여 통신을 진행해보자. https://www.aaa.com 이라는 사이트에서 https://www.bbb.com 이라는 사이트의 데이터를 받아온다고 가정하자 이하 설명을 위해 도메인은 생략 aaa. bbb로 얘기하겠다. aaa 사이트의 result.php 페이지에서 curl 통신을 통해 bbb 사이트에서 미리 발급 받은 api key를 header 로 담아 전송을 시도한다. # 데이터를 받아올 페이..

Programming/PHP 2022.11.25

[PHP] PHP Framework

PHP 프레임워크의 종류를 알아보자 Laravel 라라벨(Laravel)은 자유, 오픈 소스 PHP 웹 프레임워크의 하나로, 테일러 오트웰이 개발하였으며 모델-뷰-컨트롤러(MVC) 아키텍처 패턴을 따라 웹 애플리케이션을 개발하기 위해 고안되었다. 라라벨의 기능들 중 일부는 모듈 방식의 패키징 시스템이며, 전용 의존성 관리자, 관계형 데이터베이스에 접근하는 각기 다른 방법, 소프트웨어 전개와 유지보수의 도움을 주는 유틸리티, 신택틱 슈거 지향이 포함된다. 2015년 3월 기준으로, 라라벨은 심포니, 젠드 프레임워크, 코드이그나이터, Yii2 등과 함께 가장 대중적인 PHP 프레임워크 가운데 하나로 간주된다. 라라벨의 소스 코드는 깃허브에 호스팅되어 있으며 MIT 허가서의 조항에 의거하여 허가된다. 출처 :..

Programming/PHP 2022.11.18
반응형