← 아티클 목록
업데이트phplaravel업데이트

PHP 7.4.7 업데이트 — 한국 Laravel 개발자 영향 분석

작성: 라라벨 코리아 (초안)

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.7이 2020년 6월 11일에 릴리스되었습니다. 이번 버전은 7.4.6에서 도입된 제너레이터(Generator) 회귀 버그를 포함한 Core, FFI, GD, Opcache, Standard 영역의 중요 버그를 수정합니다. 특히 yieldyield from 관련 치명적 결함이 포함되어 있어 해당 기능을 사용하는 Laravel 애플리케이션은 즉각적인 업그레이드를 권장합니다.


핵심 내용

🔴 긴급: 제너레이터(Generator) 회귀 버그 수정 (Core)

7.4.6 업데이트 이후 제너레이터 관련 두 가지 심각한 버그가 확인되었습니다.

  • 버그 #79600: 배열 기반 제너레이터에서 yield를 사용할 때 발생하는 회귀(regression) 버그. 7.4.6에서 새롭게 도입된 결함입니다.
  • 버그 #79657: yield from에서 유효하지 않은 값을 만났을 때 PHP 프로세스가 무한 대기(hang) 상태에 빠지는 버그.

Laravel에서는 제너레이터를 직접 사용하는 경우가 많지 않지만, LazyCollection, 대용량 데이터 스트리밍 처리, 일부 패키지의 내부 구현에서 제너레이터를 활용합니다. 7.4.6으로 업그레이드 후 이상 증상을 경험했다면 이 버그가 원인일 가능성이 높습니다.

🔴 Core 코어덤프(Coredump) 버그

  • 버그 #79599: set_error_handler()에서 코어덤프가 발생하는 버그가 수정되었습니다. 커스텀 에러 핸들러를 등록하는 Laravel 애플리케이션(특히 App\Exceptions\Handler 커스터마이징)에서 예기치 않은 프로세스 종료를 유발할 수 있는 위험한 버그입니다.

🟡 Opcache 관련 수정

  • 버그 #79588: opcache.ini 설정에서 on/off 문자열 값이 올바르게 인식되지 않는 버그. opcache.enable=on 형태로 설정한 경우 의도치 않게 OPcache가 비활성화될 수 있었습니다.
  • 버그 #79548: Preloading 사용 시 정적 변수(static variable)를 사용하는 상속된 메서드에서 세그멘테이션 오류(segfault) 발생.
  • 버그 #79603: RTD(Runtime Type Determination)와 Opcache 간 충돌 버그.

Laravel 개발자 주목: opcache.preload를 적용하고 있다면 7.4.7로의 업그레이드가 안정성 측면에서 특히 중요합니다.

🟡 FFI 세그멘테이션 오류

  • 버그 #79571: FFI 유니온(union) 타입에 var_dump()를 호출할 때 세그멘테이션 오류가 발생하는 버그. FFI를 직접 사용하는 패키지나 확장 개발자에게 해당됩니다.

🟢 GD 이미지 처리

  • 버그 #79615: GIF 파일 헤더가 잘못 작성되는 버그 수정. Intervention Image 등 GD 드라이버를 사용하는 이미지 처리 기능에서 GIF 출력이 올바르지 않을 수 있었습니다.

🟢 Standard — DNS 조회 실패

  • 버그 #79561: dns_get_record() 함수가 DNS_ALL 플래그와 함께 사용될 때 실패하는 버그. DNS 관련 로직을 직접 구현한 경우 영향을 받을 수 있습니다.

참고: 7.4.6 이전 주요 보안 수정 이력

7.4.7을 처음 적용하는 경우(7.4.5 이하에서 업그레이드), 이전 버전에서 수정된 보안 취약점도 함께 패치됩니다.

CVE영향 버전내용
CVE-2020-7067~7.4.4urldecode()에서 범위 외 읽기(OOB Read)
CVE-2020-7066~7.4.3get_headers()에서 null 바이트 이후 Host 헤더 노출
CVE-2020-7065~7.4.3mb_strtolower() UTF-32LE 스택 버퍼 오버플로우
CVE-2020-7064~7.4.3EXIF 파싱 중 미초기화 값 사용
CVE-2020-7063~7.4.2Phar 빌드 시 파일 권한 과다 부여
CVE-2020-7062~7.4.2Session Upload Progress 널 포인터 역참조
CVE-2020-7061~7.4.2Phar 추출 중 힙 버퍼 오버플로우

한국 Laravel 개발자에게 미치는 영향

Laravel 버전 호환성

PHP 7.4.7은 현재 활발히 사용되는 Laravel 6.x(LTS), 7.x 버전과 완전히 호환됩니다. Laravel 8.x는 PHP 7.4+를 지원하므로 마찬가지로 문제없습니다.

LazyCollection 사용자

Laravel 6.x에서 도입된 LazyCollection은 내부적으로 PHP 제너레이터를 사용합니다. 7.4.6으로 업그레이드한 뒤 LazyCollection을 사용하는 쿼리 스트리밍이나 대용량 파일 처리에서 예기치 않은 동작이 발생했다면 이번 7.4.7 업그레이드로 해결될 가능성이 높습니다.

// 이 코드가 7.4.6에서 비정상 동작할 수 있었음 User::cursor()->each(function ($user) { // 처리 로직 });

Opcache Preloading 사용 환경

PHP 7.4에서 공식 도입된 Preloading을 opcache.preload 설정으로 운영 중인 팀은 7.4.7의 Opcache 수정 사항이 직접적으로 안정성에 영향을 미칩니다. 특히 세그멘테이션 오류 버그(#79548)는 프로덕션에서 PHP-FPM 워커가 갑자기 종료되는 원인이 될 수 있습니다.

Laravel Valet (macOS)

# Valet을 사용하는 경우 Homebrew를 통해 PHP를 업그레이드합니다brew upgrade php@7.4valet restart

주의: Homebrew의 php@7.4 패키지가 7.4.7로 업데이트되었는지 먼저 확인하세요. php -v 명령으로 버전을 검증하십시오.

Laravel Sail / Docker

공식 Laravel Sail Docker 이미지(laravelsail/php74-composer)의 기반 이미지 업데이트 여부를 확인해야 합니다. 직접 Dockerfile을 관리하는 팀은 베이스 이미지 태그를 최신 상태로 유지하는 것을 권장합니다.

# PHP 7.4 공식 이미지 기반 예시 FROM php:7.4-fpm # 이미지 빌드 시 최신 패키지 반영 여부 확인 RUN docker-php-ext-install opcache

온프레미스 / 클라우드 서버 (CentOS, Ubuntu)

한국 프로덕션 환경에서 많이 사용하는 Remi 저장소(CentOS/RHEL) 또는 ondrej/php PPA(Ubuntu)를 통해 업그레이드할 수 있습니다.

# Ubuntu (ondrej/php PPA) sudo apt update && sudo apt upgrade php7.4 # CentOS / RHEL (Remi 저장소) sudo yum update php74-php

실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • 7.4.6을 사용 중이라면 즉시 7.4.7로 업그레이드 (Generator 회귀 버그)
  • php.ini 또는 opcache.ini에서 opcache.enable=on 형태의 설정값 확인 후 재검증
  • LazyCollection을 사용하는 기능 로컬에서 재테스트

스테이징 환경

  • PHP 업그레이드 후 composer check-platform-reqs 실행
  • OPcache Preloading 설정이 있다면 php-fpm 재시작 후 에러 로그(/var/log/php-fpm/error.log) 확인
  • 이미지 업로드/처리 기능에서 GIF 포맷 출력 테스트 (버그 #79615)
  • set_error_handler() 커스터마이징 부분 에러 핸들링 시나리오 테스트
  • phpinfo() 또는 php -i | grep "PHP Version"으로 버전 반영 확인

프로덕션 환경

  • 배포 전 스테이징에서 최소 24시간 안정성 검증
  • PHP-FPM 사용 시 sudo systemctl reload php7.4-fpm (재시작이 아닌 reload 권장)
  • 업그레이드 직후 APM(New Relic, Datadog) 또는 Sentry 에러 모니터링 집중 감시
  • opcache_reset() 또는 PHP-FPM 재시작으로 Opcache 캐시 초기화
  • 롤백 계획 수립: 이전 PHP 버전 패키지 보관 또는 스냅샷 확보

보안 패치 미적용 버전 사용 중인 경우 (7.4.2 이하)

  • 위 CVE 목록 검토 후 보안팀 또는 CTO에게 업그레이드 긴급도 보고
  • urldecode(), get_headers(), mb_strtolower(), EXIF 파싱, Phar, Session Upload Progress 사용 여부 코드베이스 전수 조사
  • 보안 취약점 특성상 즉시 업그레이드 또는 임시 WAF 규칙 적용 검토

편집자 주: 이 문서는 초안입니다. PHP 공식 릴리스 노트(https://www.php.net/releases/7_4_7.php) 및 각 패키지(Valet, Sail) 최신 릴리스 노트와 교차 검증 후 게시를 권장합니다. Homebrew 및 패키지 저장소의 실제 업데이트 시점은 작성 시점 기준이므로 확인이 필요합니다.