Reflection

    [Java] Reflection 사용 시 주의점.

    Reflection 이란 구체적인 정보를 알 지 못해도, 클래스와 메서드의 메타정보를 사용하여 해당 클래스의 메서드, 변수들에 접근할 수 있도록 해주는 기술이다. 이렇게 편리하고 좋아보이기만 하는 Reflection 기술에 무슨 주의점이 있을까? 그건 바로, Reflection은 런타임에 동작하기 때문에, 컴파일 시점에 오류를 잡을 수 없다는 것이다. 타입 정보를 기반으로 컴파일 시점 오류 체킹을 통해 개발편의성을 늘리는 방향으로 프로그래밍 언어가 발전해왔는데, Reflection 은 이러한 흐름에 역행하는 방식이다. 따라서 Reflection은 프레임워크 개발이나 매우 일반적인 공통 처리가 필요할 때만 조심히 사용해야 한다.

    [Spring] Filter + Reflection == AOP

    Filter + Reflection == AOP 가 의미하는 것이 무엇일까? 위의 식이 의미하는 바는 Filter 에 reflection 을 사용하면, Spring의 AOP와 비슷한 효과를 발휘할 수 있 다는 것이다. 원래 Filter 만을 사용한다면 전처리 기능만 유효하다. 하지만 reflection 을 사용하여 호출될 함수를 알아낸 다음 Filter 안에서 호출한다면 후처리 작업까지 가능해진다. 이렇게 된다면 Spring에서 제공하는 AOP 처럼 Filter 로도 전처리, 후처리 작업을 직접 설정할 수 있게 된다. 잘못된 내용에 대한 수정이나, 본문에 대한 어떠한 피드백도 환영하니 댓글로 남겨주시면 감사하겠습니다. ㅎ