
코드 덩어리를 볼 때마다 숨이 턱 막힙니다.
금융권 차세대 프로젝트를 할 때였습니다. 수십 명이 짠 코드가 뒤엉켜 거대한 진흙탕(Big Ball of Mud)이 되어 있더군요. "이거 건드리면 결제 시스템 멈춥니다"라는 전임자의 경고는 농담이 아니었습니다.
저는 항상 말합니다. 코드는 자산이 아니라 부채라고요.
그런데 더 무서운 건, 그 부채의 규모가 눈에 보이지 않는다는 겁니다. IDE의 파일 트리 구조는 너무나 평온해 보이니까요. 그 속에 숨겨진 끔찍한 의존성 지옥을 감추고 말입니다.
주니어들이 자주 하는 실수가 있습니다. 비즈니스 로직을 이해하지 못한 채, 화면에 보이는 코드 몇 줄만 고치고 퇴근하는 겁니다. 그 코드가 저 깊은 곳의 레거시 모듈과 어떻게 얽혀 있는지 모른 채 말이죠.
그건 폭탄 돌리기나 마찬가지입니다.

최근에 'Nogic'이라는 VS Code 확장을 보며 든 생각은 하나였습니다. "이제 핑계 댈 수 없겠구나."
이 도구는 여러분의 코드베이스를 그래프로 그려줍니다. 예쁘게 보라고 만든 게 아닙니다. 여러분이 저지른 '건축학적 죄악'을 시각적으로 폭로하기 위해 존재하는 도구입니다.
개발자는 텍스트가 아니라 구조를 봐야 합니다.
Nogic을 설치하고 `Nogic: Open Visualizer`를 실행하면, 여러분이 작성한 파일과 클래스, 함수들이 점과 선으로 연결되어 나타납니다.
아마 처음 실행하면 충격받을 겁니다. 깔끔하게 짰다고 자부하던 코드가 사실은 서로를 미친 듯이 호출하는 순환 참조(Circular Dependency)의 온상이었다는 걸 눈으로 확인하게 될 테니까요.
특히 'Call Graph' 기능은 뼈아픕니다.
함수 하나를 고쳤을 때 그 여파가 어디까지 미치는지 추적할 수 있습니다. SI 시절, 영향도 분석 보고서를 쓰느라 밤을 새웠던 기억이 납니다. 그때 이런 도구가 있었다면 퇴근 시간이 서너 시간은 당겨졌을 겁니다.
단순히 보는 것에서 끝나지 않습니다. 'Boards' 기능을 사용하면, 거대한 스파게티 속에서 내가 지금 당장 격리해서 봐야 할 모듈만 떼어내서 볼 수 있습니다.
Explorer에서 파일에 대고 우클릭해서 보드에 추가하세요. 그리고 노드를 더블클릭해서 코드로 들어가세요.
구조를 파악하고, 불필요한 의존성을 끊어내는 것. 그게 리팩토링의 시작입니다.

코드 변경 사항이 실시간으로 반영(Auto-sync)된다는 점도 의미심장합니다.
여러분이 무심코 `import` 한 줄을 추가할 때마다, 그래프의 선 하나가 늘어납니다. 복잡도가 실시간으로 증가하는 걸 눈으로 보라는 뜻입니다.
저는 이 도구를 신입 사원 온보딩 때 썼으면 좋겠습니다.
"네가 지금 작성하려는 그 코드가 전체 시스템을 어떻게 오염시키는지 직접 봐라"라고 말해주고 싶거든요.
최신 기술 스택을 이력서에 한 줄 더 적는 건 중요하지 않습니다. 내가 짠 코드가 동료에게 짐이 되지 않도록, 그 복잡도를 통제할 수 있는 능력이 진짜 실력입니다.
당신의 코드는 지금 어떤 모양을 하고 있습니까?
질서 정연한 도시입니까, 아니면 무법천지의 슬럼가입니까.
눈을 돌리지 말고 직시하세요. 그래야 고칠 수 있습니다.


