@Deprecated 어노테이션이 지정된 요소는 더 이상 사용하지 않는 것이 권장됩니다. 해당 요소가 사용 중단(deprecated) 처리되는 주요 이유는 다음과 같습니다.
- 사용 시 오류가 발생할 위험이 있고 잠재적으로 위험할 수 있습니다.
- 향후 버전과 호환되지 않을 가능성이 있습니다.
- 향후 버전에서 제거될 수 있습니다.
- 더 나은 성능과 효율성을 갖춘 대체 솔루션이 이미 존재합니다.
Java 9에서 추가된 두 가지 새로운 속성
Java 9에서는 @Deprecated 어노테이션에 since와 forRemoval이라는 두 가지 새로운 속성(element)이 추가되었습니다. 이를 통해 개발자는 API의 사용 중단 정보를 훨씬 더 명확하게 파악할 수 있게 되었습니다.
1) since
since 속성은 해당 API 요소가 어떤 버전부터 사용 중단되었는지를 지정합니다. 개발자는 이 정보를 통해 특정 API가 언제부터 폐기 예정 상태가 되었는지 정확히 알 수 있으며, 코드 마이그레이션 계획을 세우는 데 유용하게 활용할 수 있습니다.
2) forRemoval
forRemoval 속성은 해당 API 요소가 향후 버전에서 실제로 제거될 예정임을 나타냅니다. 이 속성이 true로 설정된 경우, 개발자는 해당 API를 더 이상 사용하지 말고 대체 솔루션으로 마이그레이션하는 것이 좋습니다.
실제 문서 적용 사례
아래는 Java 9 공식 문서에 있는 Boolean 클래스의 문서입니다. @Deprecated 어노테이션이 "since" 속성을 사용하여 해당 API가 사용 중단된 버전을 표시하고 있는 것을 확인할 수 있습니다.

다음은 Java 9의 System 클래스 문서입니다. 이 문서에서는 @Deprecated 어노테이션이 "forRemoval" 속성을 사용하여 해당 API가 향후 제거될 예정임을 명시하고 있는 모습을 볼 수 있습니다.
