현대 소프트웨어 개발에서 프로젝트의 디렉터리 구조는 유지 보수에 큰 영향을 미치는 요소입니다. 구조가 제대로 잡혀 있지 않으면 코드 탐색에 시간이 오래 걸리고 팀원 간 협업이 비효율적으로 이루어질 수 있습니다. 반면, 잘 설계된 디렉터리 구조는 논리적으로 구성되어 있어 개발자가 파일을 효율적으로 찾고 관리할 수 있도록 돕습니다. 프로젝트의 성격과 규모에 따라 적절한 구조는 달라지므로, 개발자들은 각 상황에 최적화된 구조를 찾기 위해 지속적으로 고민하고 노력합니다.
자신의 프로젝트에 적합한 디렉터리 구조를 설계하려면 다양한 구조를 직접 시도해 보는 것이 중요합니다. 일반적으로 IDE에서 디렉터리를 생성하고 파일을 이동시키는 방식이나 Mind Map 도구를 활용하여 구조를 시각화하는 방식이 사용됩니다. IDE를 활용하면 실제 구조를 구현해볼 수 있다는 장점이 있지만 변경을 되돌리기 어려워 여러 구조를 비교하기엔 비효율적이라는 단점이 있습니다. 반면, Mind Map 도구는 구조를 손쉽게 비교할 수 있으나, 실제 파일을 삽입하거나 이동시키는 기능은 제공하지 않는 제약이 있습니다.
Understand는 이러한 한계를 보완할 수 있는 Architecture Designer 기능이 있습니다. 이 기능은 Mind Map처럼 디렉터리 구조를 시각화할 수 있을 뿐만 아니라, 실제 파일 이동과 리포트 생성, 구조 비교 등의 기능도 제공하여 디렉터리 구조 실험과 설계에 효과적으로 활용할 수 있습니다.
Understand Architecture Designer 사용 예시
Understand의 Architecture Designer에 대해 살펴보겠습니다.

Understand는 기본적으로 현재 디렉터리의 구조를 그대로 나타내는 ‘Directory Structure’를 제공합니다. “Architectures -> Design Architecture -> New Architecture” 메뉴를 통해 새로운 아키텍처를 생성할 수 있습니다.

새로운 아키텍처를 생성하면 위와 같은 화면이 나타납니다. 왼쪽의 ’Architecture Outline’에는 새로 만드는 디렉터리의 구조가 표시되고 오른쪽의 ‘Directory Structure’는 현재 디렉터리 구조가 표시됩니다. 상단에는 생성된 아키텍처의 이름이 표시됩니다.
왼쪽의 ‘Architecture Outline’의 각 줄에 원하는 디렉터리를 적으면 자동으로 중앙에 노드가 생성됩니다. 하위 노드를 작성하려면 원하는 노드 바로 다음 줄에 탭을 누르고 디렉터리 이름을 입력하면 하위 디렉터리가 생성됩니다.
파일을 드래그 앤 드롭으로 원하는 노드에 배치하면 해당 디렉터리에 파일이 이동합니다.

생성한 디렉터리 구조는 다른 디렉터리 구조에 영향을 주지 않으므로, 다양한 디렉터리 구조를 비교할 수 있습니다. 또한 Understand는 Architecture Designer를 통해 생성한 디렉터리 구조에 대한 시각화, 코드 검사, 코드 복잡도 및 의존성 리포트 기능을 제공하여 구조를 비교할 수 있습니다.


위 이미지는 계층형 디렉터리 구조(좌)와 도메인형 디렉터리 구조(우)의 의존성을 시각화한 이미지로 “Graph -> Dependency Graph ->원하는 디렉터리” 순서를 통해 시각화 할 수 있습니다.

위 이미지는 계층형 디렉터리 구조의 UML을 시각화한 이미지로 “Graph -> UML Class Diagram -> 원하는 디렉터리” 순서를 통해 시각화 할 수 있습니다.
“원하는 디렉터리 구조를 우클릭 -> Interactive Reports”를 통해 사용 가능한 리포트를 확인할 수 있습니다. 원하는 리포트가 없는 경우“tools -> Plugin Manager -> Interactive Reports”를 통해서 추가 리포트를 사용할 수 있습니다.

Understand는 생성한 디렉터리 구조를 arch.json 파일로 [프로젝트명].und 디렉터리에 저장합니다. 다른 프로젝트의 [프로젝트명].und 디렉터리에 JSON 파일을 추가하면 동일한 디렉터리 구조를 생성할 수 있습니다. JSON 파일을 통해 팀원들과 디렉터리 구조를 공유하고, 변경 사항을 추적하며, 일관된 개발 환경을 유지할 수 있습니다
마무리
이번 글에서는 Understand의 Architecture Designer 기능에 대해 살펴보았습니다. 소프트웨어 개발을 하다 보면 자신의 프로젝트 상황과 규모에 따라 디렉터리 구조의 변경이 있을 것입니다. 많은 변경 과정에서 Understand의 Architecture Designer는 프로젝트 상황과 규모에 맞는 디렉터리 구조를 찾는 데 많은 도움이 될 것입니다. 특히 JSON 파일을 통해 팀원 간에 디렉터리 구조를 공유하고 변경 사항을 추적하여 효율적인 협업 환경을 구축할 수 있습니다.
디렉터리 구조, 이제 시각적으로 설계하세요 - Understand
Architecture Designer로 복잡한 구조도 명확하게. 리포트와 시각화까지 한 번에 경험해보세요.