깃 저장소의 역사를 어떻게 보여줄 것인가는 오래된 숙제다. 대부분의 개발자는 git log의 텍스트 나열이나 그래프 뷰, 혹은 깃허브의 기여 그래프 정도에 익숙하다. 이런 방식은 정확하지만 저장소가 수천 개의 커밋으로 불어나면 전체 흐름을 한눈에 감잡기 어렵다. 최근 공개된 플로엠(Phloem)은 이 문제를 전혀 다른 은유로 풀어낸다. 공개 깃허브 저장소 주소를 붙여 넣으면, 모든 커밋이 하나의 점균(slime mold) 네트워크를 키우는 양분이 되어 화면 위에서 생장하는 모습을 보여준다.
이름부터가 의도를 드러낸다. 플로엠은 식물의 체관, 즉 광합성으로 만든 양분을 식물 전체로 실어 나르는 수송 조직을 뜻한다. 커밋 하나하나가 네트워크를 자라게 하는 영양분이라는 발상과 맞닿아 있다. 시각적 모티프인 점균 역시 임의로 고른 것이 아니다. 단세포 생물인 점균, 특히 황색망사점균(Physarum)은 먹이 사이를 잇는 최적 경로를 스스로 찾아내는 능력으로 과학계에서 잘 알려져 있다. 중심 없이 번져 나가면서도 효율적인 연결망을 형성하는 그 성질은, 수많은 작은 기여가 쌓여 하나의 코드베이스를 이루는 소프트웨어 개발의 생태와 꽤 잘 겹친다.
서버 없이 브라우저에서 돈다
실무자 입장에서 눈여겨볼 지점은 동작 방식이다. 플로엠은 브라우저 안에서 전부 실행되며 아무것도 서버로 업로드하지 않는다고 밝히고 있다. 저장소 데이터를 외부 서비스에 넘기지 않는다는 뜻으로, 사내 코드나 민감한 이력을 다뤄야 하는 환경에서 클라이언트 사이드 처리는 분명한 장점이다. 물론 공개 저장소를 대상으로 하므로 데이터 자체는 이미 공개돼 있지만, '아무것도 올리지 않는다'는 설계 원칙은 비슷한 분석 도구를 고를 때 점점 중요해지는 기준이다. 별도 설치나 계정 없이 주소 하나로 바로 돌아간다는 점도 진입 장벽을 크게 낮춘다.
분석 도구가 아니라 감각의 도구
다만 플로엠을 깃 분석 도구로 오해하면 곤란하다. 공개된 설명만 놓고 보면 이것은 지표를 집계하거나 병목을 짚어 주는 분석 솔루션이라기보다, 저장소의 성장 과정을 생물의 성장처럼 '느끼게' 해 주는 감각적 시각화에 가깝다. 활발하게 커밋이 쏟아진 시기와 잠잠했던 시기, 특정 영역에 기여가 몰리는 패턴 같은 것을 유기적인 형태의 변화로 직관하게 만드는 쪽이다. 리뷰 부하를 측정하거나 코드 소유권을 추적하는 기존의 정량 도구들과는 결이 다르다.
이런 종류의 도구가 실무에 주는 가치는 생각보다 분명하다. 신규 합류자에게 저장소의 역사를 설명하거나, 오픈소스 프로젝트의 활동성을 발표 자료에 담거나, 팀이 걸어온 길을 회고하는 자리에서 텍스트 로그보다 훨씬 빠르게 공감을 끌어낸다. 숫자가 전달하지 못하는 '누적된 노동의 질감'을 보여 주는 셈이다. 코드 아트나 데이터 시각화에 관심 있는 개발자라면 구현 방식 자체도 흥미로운 참고 사례가 된다.
한계도 분명히 해 둘 필요가 있다. 공개된 정보가 소개 문구 수준에 그쳐, 어느 규모의 저장소까지 매끄럽게 처리되는지, 생장 형태가 커밋의 어떤 속성을 반영하는지, 브랜치나 머지를 어떻게 다루는지 같은 구체적인 동작은 확인되지 않았다. 거대한 저장소를 전부 브라우저에서 처리하는 만큼 성능상의 제약이 있을 가능성도 있다. 결국 플로엠은 깃 데이터를 읽는 새로운 창구라기보다, 익숙한 데이터에 낯선 생명력을 입혀 다시 바라보게 하는 실험에 가깝다. 생산성 지표로 환산되지 않는 개발의 서사를 시각으로 되살린다는 점에서, 한 번쯤 자신의 저장소를 붙여 넣어 볼 만한 도구다.