-
php8 에 도입되는 annotation (attributes)
php8 에 도입되는 attributes php 8 부터는 attrubutes 라는 기능을 사용할 수 있습니다. 다른 많은 언어에서는 annontation 이라고 불리는 것인데, 이 attributes (aka. annotation) 은 앞서, rman 님께서 작성해주신 Annotation 이해하기 을 참조해주세요. (이미 php8 소개하는 많은 블로그들이 있었서 늦은감이 있네요…) 일단 여기서는 어떻게 사용하는지, 또 어떻게 커스텀 attributes 를 만드는지 등에 대해서 다뤄 보겠습니다. 개요 먼저 attribute 가 작성된 예제를 올려봅니다. use \Support\Attributes\ListensTo; class ProductSubscriber { #[ListensTo(ProductCreated::class)] public function onProductCreated(ProductCreated $event) { /* …...
-
Annotation 이해하기
들어가기 앞서 자바를 사용하며 봤었던 @Override 표시. 단순히 “부모에 정의된 메소드를 오버라이딩했나보다.” 라며 넘어갔습니다. 어노테이션을 잘 모르는채로 지냈는데, 어느 순간부터 점점 보이기 시작합니다. 큰 의미 없었던 @기호 인줄 알았는데, 아니였습니다. @Getter, @Setter를 쓰면 알아서 아래 코드를 생성시켜주고 @Column 한다음 name에 값을 넣어주면, 테이블 칼럼명에 적히게 됩니다. 이쯤되니 아무 의미 없는 표시가 아님이 느껴졌고, 제대로 공부해봐야겠다는 생각이 들었습니다. Annotation oracle 사이트에는 어노테이션에 대해 아래처럼 적혀있습니다. 이게 도대체 무슨 말이지..? “프로그램에 대한 데이터를 제공한다” 컴파일러라는 프로그램에게 “@Override...
-
java 커스텀 어노테이션
Annotation Annotation을 직역하면 주석 이라는 뜻인데, 간단히 말해 소스에 메타 데이터를 주입시켜주는 일종의 표식 정도로 생각하면 좋겠습니다. 스프링 으로 구성된 웹서버에서 흔히 사용하는 @Controller, @Service, @Repository 등을 예로 들 수 있겠네요. 물론 다양하고 광범위한 활용 방법이 있겠지만.. 직접 사용해 보았던 것을 소개하고, 방법을 이해하신 뒤에 응용해 보시는 편이 더 좋을 것 같습니다.! 어노테이션을 만들자 간단한 커스텀 어노테이션을 만들어 보겠습니다. // MyAnnotation.java @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface MyAnnotation { } MyAnnotation 이라는 이름의 커스텀 어노테이션이...