▸JAVA/기본 문법

애노테이션(annotation)

코데방 2019. 12. 10.
728x90

[ 애노테이션이란? ]

  • 클래스나 메소드에 특정 역할 또는 의미 등을 부여할 수 있도록 하는 기능

간단히 말해 애노테이션은 해당 코드를 IDE(이클립스) 또는 컴파일러가 체크할 수 있도록 해주는 기능입니다. 대표적인 표준 API로는 @Overide, @Deprecated, @SuppressWarnings가 있습니다.

 


[ @Overide ]

  • 만약 해당 메소드가 오버라이드가 아니라면 경고 (컴파일 에러)

실제로 오버라이딩이 되는지 체크하는 애노테이션입니다. 무언가를 오버라이딩하려고 만든 함수인데 이름을 잘 못 써서 새로 만들어버리거나 하는 등의 실수를 방지하기 위한 기능입니다. 또한 다른 사람이 봤을 때도 한눈에 오버라이딩 된 메소드라는 것을 파악할 수 있게 됩니다.

 

 

 

 

 


 

[ @Deprecated ]

  • 해당 변수나 메소드 사용을 권장하지 않는다는 표시를 해줌
  • 컴파일 에러는 나지 않음

만약 내가 만든 클래스를 다른 사람들이 사용중인데 특정 변수나 함수에서 문제가 발생해서 새로 만들었을 경우, 기존 코드를 삭제해버리거나 이름을 바꿔버리면 다른 사람들의 코드에서 컴파일 에러가 발생하게 됩니다. 직접 연락을 돌려서 알려주는 방법도 있지만 간단하게 해당 애노테이션을 사용해서 해당 코드를 비추천하니 다른 코드(메소드 또는 변수)를 사용하라는 내용을 공유할 수 있습니다.

애노테이션을 사용하는 순간 해당 변수나 메소드에도 취소선이 그어지고, 이를 사용하는 다른 쪽 코드에서도 표시가 됩니다. 다만 컴파일 에러는 나지 않고 사용은 그대로 됩니다.

 

 

 

 

 


 

[ @SuppressWarnings ]

  • 코드 안에 특정 경고의 종류를 지정하여 컴파일 시 경고를 출력하지 않도록 함
  • 경고의 내용을 무시하게 되기 때문에 문제점 발생 가능성 높음

이 애노테이션은 말 그대로 컴파일 시 특정 경고를 출력하지 않도록 해줍니다. 비주얼 스튜디오에서 CRT_Warning을 없애는 전처리기와 비슷합니다. 하지만 경고가 있다는 건 문제가 있다는 것이기 때문에 특별한 이유가 있거나 숙련자가 아니라면 사용하지 않는 것이 좋습니다.

 

728x90

'▸JAVA > 기본 문법' 카테고리의 다른 글

다형성의 활용 (오버라이딩)  (4) 2019.12.10
인터페이스와 다중 상속  (4) 2019.12.10
추상 (abstract) 클래스와 메소드  (0) 2019.12.10
클래스 상속 (extends)  (0) 2019.12.10
생성자와 this  (0) 2019.12.10

댓글

💲 추천 글