애노테이션(annotation)은 컴파일러에게 코드에 대한 추가 정보를 제공하는 데 사용됩니다. 코틀린에서 애노테이션은 코드의 의도를 명확히 표현하고, 컴파일 타임에 오류를 방지하는 데 도움을 줍니다.
애노테이션의 정의
코틀린에서 애노테이션은 @
기호로 시작하여 선언됩니다. 다음은 간단한 애노테이션의 예시입니다.
annotation class ExampleAnnotation
애노테이션의 활용
코틀린에서 애노테이션은 여러 가지 목적으로 활용될 수 있습니다. 몇 가지 주요한 용도는 다음과 같습니다.
1. 컴파일 타임 체크
애노테이션을 사용하여 컴파일 타임에 코드의 일관성을 검사할 수 있습니다. 예를 들어, 다음과 같이 애노테이션을 사용하여 널 (null) 값의 체크를 할 수 있습니다.
annotation class NotNull
fun processData(@NotNull data: String) {
// data 처리 로직
}
위의 @NotNull
애노테이션을 사용하면 processData
함수에 널 값이 전달되는 것을 방지할 수 있습니다.
2. 런타임 시 메타데이터 활용
애노테이션을 사용하여 런타임 시 메타데이터를 얻을 수 있습니다.
annotation class ApiEndpoint(val url: String)
@ApiEndpoint("/api/data")
fun fetchData() {
// API 호출 로직
}
위의 예시에서 @ApiEndpoint
애노테이션을 이용하여 fetchData
함수의 API 엔드포인트를 정의하고, 런타임 시 해당 정보를 얻을 수 있습니다.
3. 코드 생성
애노테이션을 사용하여 코드를 생성할 수 있습니다.
annotation class GenerateClassName(val name: String)
@GenerateClassName("MyGeneratedClass")
class MyClass {
// 클래스 구현
}
위의 @GenerateClassName
애노테이션을 사용하면 컴파일러가 해당 애노테이션이 붙은 클래스의 이름을 MyGeneratedClass
로 설정할 수 있습니다.
결론
애노테이션을 활용하면 코드의 일관성을 유지하고 컴파일 타임에 오류를 방지할 수 있습니다. 또한, 런타임 시 메타데이터를 활용하거나 코드를 생성하는 등의 다양한 용도로 활용할 수 있습니다. 애노테이션을 적절히 활용하여 좀 더 견고하고 유연한 코드를 작성할 수 있습니다.
참고자료: 코틀린 공식 문서