Why need Annotation in Java?

in annotation •  6 years ago 

It is just my opinion, so don't you attack me. please!

But if this posting has some incorrect informations, you comment about that

Please!!

Why need Annotation in Java?


  • Annotation이란?
    · 사전적인 의미로 주석을 뜻하지만 "//", "/**/"과 같은 일반적인 주석과는 차이가 있다.
    · Annotation은 메타데이터를 삽입하는 것이다.
    · Annotation이 붙은 영역은 Annotation이 구현된 정보에 따라 연결되는 방향이 결정된다.
    · 비지니스 로직을 해치지 않으면서, 소스코드의 연결 방향이나 구조적인 변경이 가능하다.
@Override
public static boolean equals(Object o) {
....
}

<Annotation의 사용 예>

  • Annotation의 종류 및 처리 시간
    · JDK 5부터 등장했으며, 기본적으로 제공하는 Annotaion으로는 @Deprecated, @Override, @SuppressWarnings 등이 있고, 개발자가 정의하여 만들 수 있는 Custom Annotation이 있다.
    · Annotation은 compile-time에 처리되거나 run-time에 처리되면서 reflection을 통해 클래스의 구성정보를 확인하여 기능을 수행할 수 있도록 할 수 있다.
    · 추가적으로 @Override 메소드의 이름 또는 파라미터가 잘못된 경우, compiler checking을 하면서 잘못 되었음을 경고해준다.

  • Annotation을 왜 사용하는가?
    · 소스코드의 가독성을 높여준다. Annotation을 보고 이 코드가 어떤 수행을 하는지 예측할 수 있다.
    · Annotation을 사용하면서 얻을 수 있는 가장 큰 장점은 AOP(Aspect Oriented Programming)을 할 수 있다는 점이다.

  • AOP가 왜 필요한가?
    · Java는 기본적으로 OOP(Object Oriented Programming)의 특성을 가진다.
    · 다음 그림은 OOP의 특성을 활용하여 작성된 클래스들의 다이어그램이다.


    Java를 이용해 Application을 만들면 위와 같이 여러 클래스들이 유기적으로 협력하게된다. 지금까지는 Class A, B, C는 각각의 잘 정의된 역할을 수행하고 있다.
    이러한 상황에서 logging, synchronization, exception 등을 처리하는 코드를 만들고 싶다. 어떻게 추가해서 넣어야 할까? 다음과 같은 방식으로 넣어야할 것이다.


    각각의 클래스에 대해서 다 넣어줘야 한다. 이는 OOP의 잘 정의된 역할을 수행한다에 위배되는 것이다.
    따라서 AOP가 등장하게 되었고, 다음과 같은 방법으로 구현할 수 있게 된다.


    생각한 것보다 이렇게 공통부분을 작성해줘야하는 상황은 많다. 따라서 AOP는 꼭 필요하게 되었고, 많은 부분에서 이용되고 있다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

I gave you an up-vote. It would be great if you could return a favor. Please follow me if you like and we can share posts and up-votes and help build our profiles.
Thank you!!!

Thank you !