나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-01-23 06:14:38

deprecated

deprecate에서 넘어옴

프로그래밍 언어 문법
{{{#!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. 유명한 예시5. 관련 문서

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. 언어별 상세

3.1. C++

#!syntax cpp
// 변수 deprecate하기
[[deprecated]]
int deprecated_variable;

// 함수 deprecate하기
[[deprecated]]
void deprecated_function([[deprecated]] int deprecated_parameter) {} // 함수 파라미터 deprecate하기

// 타입 정의 deprecate하기
[[deprecated]]
typedef int deprecated_typedef;

// 클래스, 구조체, enum 등 deprecate하기
class [[deprecated]] deprecated_class {
	public:
		// 멤버 및 메서드 deprecate하기
		[[deprecated]] int deprecated_member;
};

// deprecate 사유 추가하기
[[deprecated("본 함수는 다음과 같은 이유로 사용이 권장되지 않습니다.")]]
void deprecated_function2() {}
// warning: 'deprecated_function2' is deprecated: 본 함수는 다음과 같은 이유로 사용이 권장되지 않습니다.

C++14 표준부터 attribute를 통해 deprecate하는 기능이 추가되었다. #

4. 유명한 예시

5. 관련 문서


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