PHP의 die()와 exit(), 정말 다를까?
결론부터 말하자면, PHP에서 die()와 exit()는 완전히 동일한 기능을 수행합니다. 두 구문 사이에는 실질적인 차이가 없으며, 어느 쪽을 사용하더라도 스크립트 실행이 즉시 종료됩니다.
PHP 공식 매뉴얼의 설명
PHP 공식 매뉴얼은 이 둘의 관계를 명확하게 밝히고 있습니다.
exit에 대한 매뉴얼 문서에는 다음과 같이 기술되어 있습니다.
"이 언어 구조(language construct)는 die()와 동일합니다."
반대로 die에 대한 매뉴얼 문서에는 이렇게 나와 있습니다.
"이 언어 구조(language construct)는 exit()와 동일합니다."
유일한 미세한 차이점
기능적으로는 동일하지만, 아주 작은 차이점이 하나 존재합니다. 바로 파서(parser)가 해당 토큰(token)을 인식하고 처리하는 데 걸리는 시간입니다.
다만 이 시간 차이는 극미미하여 실제 애플리케이션 성능에 영향을 줄 수준이 전혀 아니며, 개발자가 성능 최적화를 위해 둘 중 하나를 선택할 필요는 없습니다.
참고: 사용 방법도 동일합니다
두 구문 모두 선택적으로 인자를 받을 수 있으며, 동작 방식도 같습니다.
- 문자열 전달 시: 종료 직전에 해당 메시지를 출력합니다.
예:exit('오류가 발생했습니다'); - 정수 전달 시: 종료 상태 코드(exit status)로 사용되며, 화면에는 출력되지 않습니다. 일반적으로
0은 정상 종료, 그 외 값은 오류를 의미합니다.
예:exit(1);
정리
die()와 exit()는 서로 별칭(alias) 관계에 있는 동일한 언어 구조입니다. 따라서 팀의 코딩 컨벤션이나 가독성 선호에 따라 자유롭게 선택하면 됩니다. 예를 들어 SQL 오류 발생 시 die('쿼리 실패')처럼 메시지와 함께 사용하는 관습이 있는 반면, 종료 코드만 반환하는 경우에는 exit를 더 선호하는 경향도 있지만, 이는 순전히 개발자의 취향 문제입니다.