개발이좋아

[Java] Annotation 본문

Java

[Java] Annotation

noobdev 2019. 12. 17. 20:40

자바 Annotation은 컴파일러에게 특정 정보를 주는 역할을 한다.

Annotation의 사전적 의미는 '주석'으로 @기호와 함께 쓰인다.

@Annotation

위와 같은 형식으로 사용하며 @뒤에 Annotation의 이름이 오면 된다. 

예를 들어 @Override와 같은 어노테이션은 이 메서드가 하위 클래스에서 재정의된 메서드라는 뜻이다.

이 외에도 스프링과 같은 프레임워크에서 사용하는 @Autowired, @Service, @Component, @Controller 등등 다양한 Anntation이 있다.

 

웹 같은 경우 자바로 많이 개발하는데 웹 개발 시 사용하는 스프링 프레임워크에서 어노테이션을 많이 사용하므로 잘 알아두면 좋다.

 

필요의 의해 개발자가 직접 Annotation을 만들어 사용할 수도 있다.

 

@Override : 컴파일러에게 해당 메서드가 재정의된 메서드라고 정보를 제공함

@FunctionalInterface : 함수형 인터페이스라는 정보 제공

@Deprecated : 이후 버전에서 사용되지 않을 수 있는 변수, 메서드에 사용되며 해당 변수와 메서드를 사용하지 않도록 유도

@SuppressWarnings : 특정 경고가 나타나지 않도록 함

위의 Annotation들이 자바에서 제공하는 표준Annotation중 자주 쓰이는 것들이다.

 

이 외에도 어노테이션에 대해 좀 더 많은 정보를 추가할 수 있는 '메타 어노테이션'을 제공한다.

 

https://docs.oracle.com/javase/8/docs/api/ 

 

Java Platform SE 8

 

docs.oracle.com

 

위 사이트는 오라클에서 제공하는 자바8버전 레퍼런스 사이트로 어노테이션의 관한 더 자세한 설명은 위 사이트에서 검색해보면 좋다.

 

 


 

위 사진에 12행을 보면 @Override라고 선언되어 있다.

이는 toString( ) 메서드가 재정의된 메서드라고 컴파일러에게 알리는 역할을 한다.

어노테이션을 작성하지 않아도 정상작동하나 어노테이션을 작성하지 않으면 예외를 발생시키는 경우도 있다.

예를 들어 스프링에서 의존성 자동 주입등의 기능을 사용할 때에는 꼭 @Autowride 어노테이션을 붙여주어야 한다.

이렇듯 어노테이션은 컴파일러에게 정보를 알려주는 역 할부터 시작해 다양하고 편리한 기능을 제공한다.

 

 

개발자가 직접 만드는 Custom Annotation은 인터페이스로 만들 수 있다.

인터페이스를 생성한 후 public interface에서 @interface와 같이 interface앞에 @를 붙여 주고 구현부에 필요한 기능을 정의하면 된다.

어노테이션을 만들 때 targer이나 default 등 지정할 수 있는 속성들이 많다.

 

 

 

본 포스팅은 필자가 공부한 내용을 정리한 것으로 오류가 존재할 수 있습니다.
참고: Do it! 자바 프로그래밍 입문
Comments