Git :)

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바의 Reflection 활용하기
    Java 2023. 11. 8. 10:59

    # Relfection 이란?

    • JVM Runtime Data Area 내의 Method Area에 Class, Mehtod, Variable와 같은 클레스의 정보가 저장되는데 클레스 정보를 활용할 수 있도록 도와주는 Library이다.

    # 활용 사례

    • 개발을 하다보면 switch, if ~ else if ~ else 와 같이 코딩을 하는 경우가 있다. 개인적으로 이런 코드는 SOLID의 원칙 중 SRP(단일책임원칙)과 OCP(개방폐쇠원칙)을 위반할 확률이 있기 때문에 이런 경우에 상황에 맞게 유동적으로 사용할 수 있다.

    그림1
    그림2

    • '그림1'은 kafkaMehtodList Class에 methodName과 일치하는 method를 실행시키는 로직이다. 위와 같은 구조로 설계를 하면 토픽이 늘어날 때 마다 해당 토픽에 상응하는 method만 추가해주면 되기 때문에 SRP와 OCP를 위배하지 않는 구조로 작업할 수 있다.

    그림3

    • '그림3'과 같은 경우, 해당 로직을 switch case 구문으로 작성하게 된 케이스인데 case 구문의 로직이 많아지고 복잡해질 수록 유지보수에도 안좋고 기존의 새로운 토픽이나 기능 추가시 기존 소스를 수정해야 하는 경우가 발생하기에 OCP에 위배되는 경우라 유지보수에 좋지 않다!

    'Java' 카테고리의 다른 글

    Enum 활용방안  (0) 2023.12.01
    Garbage Collection  (1) 2023.11.09
    String Constant Pool 이란?  (0) 2023.11.08
    멀티프로세스와 멀티스레드  (0) 2023.10.31
    JIT(Just In Time)이란?  (0) 2023.10.31