이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함..


코드 의존성 Visualization Tools

코드간 의존성이 얼마나 있는지 파악하기 위해 사용할 수 있는 visualization tools 를 기록합니다.

이전에 다니던 회사에서는 코드간 의존성 파악 등을 해주는 팀이 있고 자체적으로 만든 솔루션 툴이 있어서 비용을 내고 요청을 하면 분석을 해줬었는데 직접 해볼 생각을 하니 툴이 필요하다고 느껴져셔 검색을 해봤습니다.

아직 사용해본 것은 아니고 추후를 위해 기록만 해둡니다.

목적

1차적으로 코드가 체계가 있다면 체계를 얼마나 잘 지키고 있는지를 확인할 수 있습니다.

만약 잘 지켜지고 있다면 파악한 코드간 의존성을 가지고 시스템을 분해할 수 있을지 혹은 어떻게 분해할지를 고민해볼 수 있습니다.

예를들어, 컴포넌트 별로 구분지을 수 있는 코드 체계라면 컴포넌트 별로 의존성을 파악해서 의존성이 낮은 컴포넌트는 쉽게 분해할 수 있는 후보대상으로 생각할 수 있을 겁니다.

Tools

  • IntelliJ Scopes Feature : visualization 기능까지는 없는 것 같지만 validate dependencies 을 활용 가능
  • JDepend
    • Eclipse IDE plugin 존재 / Intellij IDE plugin은 확인 안됨
    • 테스트 코드에도 활용 가능
    • 배포 파이프라인에서도 사용 가능할 것으로 보임
  • Degraph
    • 테스트 코드에도 활용 가능
    • 배포 파이프라인에서도 사용 가능할 것으로 보임
  • Sonargraph

Associated Posts

관련된 주제를 살펴볼 수 있도록 동일한 Tag를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.

  • Code Visualization Tools


    ObjectAid
    ( 이미지 출처 : http://www.objectaid.com )

    ObejctAid 는 클래스 다이어그램과 시퀀스 다이어그램을 소스코드로부터 추출해내는 툴이다.
    Eclipse 플러그인 형태로 제공되며 Java 소스코드와 라이브러리의 다이어그램을 추출 가능하다.

    다이어그램은 소스코드로부터 추출되어져야만 한다고 생각한다.

    새로운 시스템을 만났을 때
    산출물의 존재여부는 시스템 파악의 진척률에 매우 큰 영향을 준다.
    또한 산출물의 신뢰도 역시 시스템 파악의 진척률에 매우 큰 영향을 준다.

    시스템이라는 실체로부터 추출 될 수 있는 산출물이 실제 업무에 사용할 수 있는 신뢰성 높은 자료라고 생각한다.

    게다가 시스템으로부터 추출 가능한 산출물을 기반으로 작업을 하게 되면
    매 상황마다 산출물 추출이 용이하며 그 위에 간략하고 빠르게 설계를 진행할 수 있으므로
    애자일 방법론으로 프로젝트를 진행하는 과정에서 전체 사이클이 더 빠르게 돌아갈 수 있다.


i