본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP runtime — 런타임 상태와 메서드 오버라이딩 완전 정리

by 왕진 2026. 6. 18.
반응형

 

 

Web Development · runtime concept

런타임(runtime) —
"실제 실행 중인 상태"의 의미

메서드 오버라이딩이 결정되는 시점
시작 오늘의 개념

"클래스의 메모리상의 동작" — 실무에서는 이를 런타임 상태라고 부른다.

예: "Guest 클래스의 객체가 런타임 상태에서는 메서드 오버라이딩을 해서 Guest 클래스 객체에 있는 메서드를 실행한다."

1 컴파일 타임 vs 런타임
단계 의미
컴파일 타임 코드가 작성되어 검사·번역되는 시점 구문 오류, 타입 검사 (PHP는 약함)
런타임 코드가 실제로 실행되는 시점 객체 생성, 메서드 호출, 변수 값 결정

2 메서드 오버라이딩은 런타임에 결정된다
$g = new Guest(); // 컴파일 타임엔 단순 코드 — 실행은 아직 $g->print_hello(); // 런타임에 PHP가 결정: // $g가 Guest 인스턴스 → Guest의 print_hello 사용 // (User의 같은 이름 메서드 무시)

이걸 동적 디스패치(dynamic dispatch)라고 부른다 — 어느 메서드를 부를지 실행 중에 결정.


3 객체의 런타임 상태
$user = new User(); $user->name = "철수"; // 런타임 상태 (메모리 안): // - $user는 User 객체 // - $user의 name 프로퍼티 값: "철수" // - $user의 메서드 테이블: User::print_hello

 

반응형

 

4 실무 표현
"런타임에는 ~한다"는 표현은 OOP 설명에서 자주 쓰인다 — "코드를 보면 안 보이지만 실행 중에 일어나는 일"을 가리키는 것.

핵심 한 줄 요약

런타임코드가 실제로 실행되는 시점·상태
컴파일 타임코드 검사·번역 단계 (실행 전)
동적 디스패치메서드 호출이 런타임에 결정
오버라이딩실행 시점의 객체 타입에 따름
실무 표현"런타임에는 X" = "실행 중에 X가 일어난다"
PHP 특성동적 언어 — 거의 모든 게 런타임에 결정
디버깅var_dump·xdebug로 런타임 상태 관찰
반응형

댓글