Deprecations in Java and Kotlin
Polythematik
글쓰기를 좋아해서인지 언제부터인가 코드를 작성할 때도 중요하다고 생각되는 것 중에 가장 먼저 떠오르는 건 '가독성'입니다. 그러다 보니 아직도 많이 미숙하지만 코드 한 줄을 작성할 때에도 많은 고민과 시간을 들이는 것 같습니다. 이전 글에서 @Deprecated 어노테이션을 코틀린에서 사용하는 형태를 보고 오랫동안 자바만을 사용하던 저로서는 꽤나 큰 충격으로 느껴졌습니다. "아니, 어떻게 이런 표현을 할 수가 있지?" 사용 중단을 의미하는 어노테이션인 '@Deprecated'에 대해 간단하게 자바와 코틀린에서 어떻게 표현하고 있는지 차이를 찾아보고 싶었습니다.
먼저 자바는 'since'라는 필드로 어느 버전부터 사용 중단인지를 명시하고 있고, 'forRemoval'이라는 필드로 다음 릴리즈때 삭제가 될지에 대한 유무를 표현하고 있습니다. 그래서 해당 어노테이션이 있는 필드나 메서드를 사용할 때면 javadoc을 통해 어떤 메서드를 사용해야 하는지 IDE에 팝업 레이어나 실제 메서드 안으로 들어가서 살펴봐야 했던, 약간은 불편함이 있던 것 같습니다.
https://www.baeldung.com/java-deprecated
코틀린은 조금 더 풍부한 필드를 제공하고 있습니다. 'message'라는 필수 작성 필드를 제공하여 사용 중단에 따른 전달(경고) 메시지를 작성하도록 하고 있고, 'level'이라는 필드로 로그 레벨에 따라 컴파일러에서 경고를 어떤 식으로 표현할지를 선택할 수 있습니다. 이는 사용하는 입장에서 조금 귀찮거나 성가시도록 알려주는 표현으로 느껴졌습니다. (아, 이제 사용 안되구나, 교체해야겠다는 생각이 들도록) 'replaceWith'라는 필드로 IDE에서 자동으로 대체되는 메서드로 적용할 수 있도록 하고 있어 손쉽게 교체도 가능하게 합니다. 필요하다면 대체 시 필요한 패키지 클래스를 임포트 가능하도록 'imports' 필드도 제공해서 자동으로 임포트 될 수 있게 해줍니다.
https://www.baeldung.com/kotlin/deprecation
코틀린에서의 '@Deprecated'의 사소한(?) 변화를 살펴봤지만 이를 사용하는 개발자로써는 꽤나 큰 효과가 있다는 걸 몸소 느낄 수 있었고, 한 줄의 코드를 작성하더라도 이러한 고민을 깊게 하고 작성해야겠다고 다시 한번 생각을 하게 된 좋은 계기로 기억될 것 같습니다.
https://polythematik.de/2020/03/19/deprecations
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 12월 4일 오후 11:07
데
... 더 보기솔
... 더 보기M
... 더 보기R
이
... 더 보기