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의 종류 및 처리 시간
· 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는 꼭 필요하게 되었고, 많은 부분에서 이용되고 있다.
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!!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you !
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit