@Retention

<aside> ๐Ÿ’ก Annotation ๋ฉ”ํƒ€ ์ •๋ณด๊ฐ€ ์–ธ์ œ ๋ฒ„๋ ค์งˆ์ง€์— ๋Œ€ํ•œ ํƒ€์ด๋ฐ ์„ค์ • ๋‚ด๋ถ€ ์†์„ฑ์œผ๋กœ RetentionPolicy: enum๋ฅผ ๊ฐ€์ง

</aside>

๋‚ด๋ถ€๊ตฌํ˜„

@Document
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
	RetentionPolicy value();
}

RetentionPolicy ์†์„ฑ

์ฐธ์กฐ

์•„๋ฌด ๊ด€์‹ฌ ์—†๋˜ @Retention ์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ(RetentionPolicy SOURCE vs CLASS vs RUNTIME)

@Target

<aside> ๐Ÿ’ก ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ Annotaion์ด ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ๋Š” Type์„ ์ง€์ • ๋‚ด๋ถ€ ์†์„ฑ์œผ๋กœ ElementType: enum ๋ฐฐ์—ด์„ ๊ฐ€์ง

</aside>

๋‚ด๋ถ€๊ตฌํ˜„

@Document
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
	ElementType[] value();
}

ElementType ์†์„ฑ

@Throws

<aside> ๐Ÿ’ก asd

</aside>