[인프런 워밍업 클럽] BE 0기 과제 #1 어노테이션
5강까지의 강의를 수강하면서 서버 개발에 필요한 개념을 배우며 시작했다. 서버에 관해서 다양한 기본 개념이 있었다. 그리고 개발을 시작하면서 어노테이션에 대해 언급이 시작되었고, 코딩을 하기에 어노테이션에 대한 개념이 확실하게 잡혀 있다면 도움이 될 것 같았다. 과제로 어노테이션에 대해 정리를 한다.
• 어노테이션이란?
• 자바에서 어노테이션이란 코드에 메타데이터 즉, 코드의 정보를 설명하는 데이터를 추가하는 방법을 제공하는 것이다. 어노테이션은
@
기호를 사용하여 표시되며, 주로 클래스, 메서드, 필드 등의 선언 부분에 적용된다. 어노테이션은 미리 정의된 내장 어노테이션을 사용할 수도 있고, 직접 어노테이션을 정의하여 사용할 수도 있다.
1. 어노테이션을 사용하는 이유(효과)는 무엇일까?
• 코드의 가독성 향상
어노테이션을 사용하게 되면 메타데이터를 코드에 직접 넣어 코드의 목적과 동작을 이해하기 쉬워진다.
• 코드의 유지,보수 용이
코드의 메타데이터를 코드에 포함시키게 되면 해당 코드의 변경이나 유지보수가 용이해진다.
• 프레임워크와의 협업
어노테이션은 프레임워크와 함께 작동될 때, 더 큰 효과를 발휘하게 된다. 강의에서 사용한 @Controller등의 어노테이션을 이용하여 객체의 역할을 나타내고, 프레임워크가 해당객체를 적절히 관리할 수 있도록 한다.
2. 나만의 어노테이션은 어떻게 만들 수 있을까?
• 나만의 어노테이션은 ‘@interface'라는 키워드의 사용으로 나만의 어노테이션을 정의할 수 있다.
public @interface MyAnnotation {
~
}
• 메타 어노테이션 활용: 어노테이션의 동작 방식을 정의하기 위해 메타 어노테이션을 사용합니다. 가장 대표적인 메타 어노테이션은 @Target, @Retention, @Documented, @Inherited 등이 있습니다.
@Target: 어노테이션이 적용될 수 있는 대상을 지정한다. 예를 들어, METHOD, TYPE, FIELD 등이 있다.
@Retention: 어노테이션의 정보가 언제까지 유지될지를 지정한다. SOURCE, CLASS, RUNTIME 중 하나를 선택할 수 있다.
@Documented: 어노테이션 정보를 Javadoc에 포함시킬지를 결정한다.
@Inherited: 어노테이션을 하위 클래스에게 상속시킬지를 결정한다.
• 어노테이션 내부에는 멤버를 선언할 수 있다. 이 멤버들은 메소드 형식으로 선언되고, 파라미터를 가질 수 없다. 또한, 반환 값으로는 기본 데이터 타입, String, Class, enum, 그리고 이들의 배열만 허용된다.
댓글을 작성해보세요.