최근 수정 시각 : 2025-01-06 19:58:17

deprecated


프로그래밍 언어 문법
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
프로그래밍 언어 문법
C( 포인터 · 구조체 · size_t) · C++( 자료형 · 클래스 · 이름공간 · 상수 표현식 · 특성) · C# · Java · Python( 함수 · 모듈) · Kotlin · MATLAB · SQL · PHP · JavaScript( 표준 내장 객체) · Haskell( 모나드)
마크업 언어 문법
HTML · CSS
개념과 용어
함수( 인라인 함수 · 고차 함수 · 콜백 함수 · 람다식) · 리터럴 · 상속 · 예외 · 조건문 · 반복문 · 참조에 의한 호출 · eval · 네임스페이스 · 호이스팅
기타
#! · == · === · deprecated · NaN · null · undefined · 배커스-나우르 표기법
}}}}}}
프로그래밍 언어 목록 · 분류 · 문법 · 예제

1. 개요2. 원인3. 유명한 예시4. 관련 문서

1. 개요

deprecated /ˈdɛp.ɹɪ.keɪt.ɪd/

특정 용어, 기능, 디자인 또는 관습의 사용을 비권장 내지 규탄하는 행위[1]를 뜻하는 영어 단어 'deprecation'의 분사형.

주로 프로그래밍 분야에서, 더 이상 사용이 권장되지 않는 특정한 API나 기능에 대해 deprecated되었다고 한다. deprecated된 API/기능은 이후 후속 버전에서 지원이 삭제[2]될 수 있다.

2. 원인

주로 버그가 있거나, 보안 취약점이 발견되었거나, 최신 버전에서 설계의 변화가 생겼거나, 해당 API가 이미 deprecated된 다른 API와 연관되어 있는 경우에 deprecated로 처리한다. deprecated된 API나 기능의 경우 새로운 코드를 작성할 때 사용하지 말고, 만약 기존 코드에서 사용된 경우 새로운 대체 API나 기능을 사용해 고칠 것을 권고한다.

왜 바로 해당 API를 제거하지 않는지 의문이 들 수도 있는데, 해당 API가 조금이라도 안정 버전에 공개되었을 경우, 해당 API를 사용하는 다른 응용 프로그램의 호환성을 깨트리지 않기 위한 임시방편적 조치이다. 즉, 해당 API를 당장 지우지는 않겠지만, 미래에 반드시 사라질 예정이니 최신 버전을 사용하도록 권고하는 것.

3. 유명한 예시

  • PHP에서 5.3에 deprecated를 도입했는데, 이 때문에 PHP 5.3 이상에서 제로보드를 설치 시 설치 화면에 deprecated 범벅이 되는 사태가 발생했었다. 제로보드가 PHP 4.x 기준 문법을 사용했기 때문.
    • PHP 5.3을 사용하는 경우 php.ini 파일에서 error_reporting = E_ALL ^ E_DEPRECATED로 설정하면 deprecation 경고의 출력을 막아 정상적으로 ZB4를 사용할 수 있다. 하지만 PHP 5.4부터는 기존 버전에서 deprecated되었던 session_register() 등의 지원이 완전히 삭제되었기 때문에 ZB4를 이용할 수 없다.

4. 관련 문서


[1] discouragement of use of something human-made, such as a term, feature, design, or practice [2] retire, phase out, EOL(End of Life) 등으로 표현한다