노자(老子) 도덕경(道德經) 1장
道可道 非常道
말할 수 있는 도는 영원한 도가 아니다.
名可名 非常名
이름 붙일 수 있는 이름은 영원한 이름이 아니다.

이름 붙이기를 경계한 것이다. 이름을 붙이는 순간 본질이 희석된다고 했다.

※ 도덕경 1장에 대한 해석은 학자마다 다를 수 있습니다. 이 글에서는 해석의 오해를 줄이기 위해 일반적으로 통용되는 해석을 적용하였음을 밝힙니다.

그런데 나는 소프트웨어 현장에서 정반대의 문제를 26년간 목격했다.

이름이 없어서 존재하지 못하는 것들.


각자의 언어로 갇힌 사람들 Trapped in separate languages

하나의 소프트웨어 기능이 있다. 로그인 화면이다.

이것을 부르는 이름이 사람마다 다르다.

같은 것, 다른 이름들
개발자
LoginController.java
기획자
로그인 화면 정의서 3.2절
QA
TC-LOGIN-023
운영자
INC-2024-0341
↑ 전부 같은 것이다. 그런데 아무도 같다는 것을 모른다.

회의를 해도 서로 다른 이름으로 말하니 대화가 엇나간다. 테스트 결과를 공유해도 개발자가 번역해줘야 기획자가 읽는다. 장애가 나도 어떤 기능이 문제인지 추적하는 데 시간이 걸린다.

이것이 기술 문제가 아닌 이유가 여기에 있다. 기술은 충분히 있었다. 공통의 이름이 없었다.


이름을 붙이는 순간 The moment of naming

LOGIN-001

이 이름 하나가 붙는 순간 무슨 일이 일어나는가.

LOGIN-001
개발자
LOGIN-001
기획자
LOGIN-001
QA
LOGIN-001
운영자
LOGIN-001

사일로(Silo)가 무너진다.

각자의 언어로 갇혀있던 사람들이 하나의 이름으로 연결된다. 개발자의 코드도, 기획자의 문서도, QA의 테스트 케이스도, 운영자의 장애 이력도 — 전부 LOGIN-001이라는 이름 아래 모인다.

노자가 경계한 것과 정반대다.
소프트웨어 세계에서 이름 붙이기는
본질의 희석이 아니다. 존재의 선언이다.
LOGIN-001이라고 쓰는 순간 — 그 기능은 비로소 세상에 태어난다.

실체 없는 것을 실체화한다 Making the invisible tangible

소프트웨어는 원래 눈에 보이지 않는다.

제조업의 부품은 손으로 잡을 수 있다. 무게가 있고, 색깔이 있고, 어디에 있는지 가리킬 수 있다. 그래서 부품번호를 붙이는 것이 자연스럽다.

소프트웨어는 다르다. "LOGIN 화면"이 실제로 어디에 있는지 아무도 손으로 가리킬 수 없다. 서버에? 코드에? 데이터베이스에? 사용자의 브라우저에?

눈에 보이지 않으니 이름을 붙이기가 어색했다. 이름을 붙이지 않으니 관리 대상이 되지 못했다. 관리 대상이 되지 못하니 히스토리가 사라졌다.

SOM이 하려는 것
눈에 보이지 않는 것에 이름을 붙여 실체로 만든다.

이름이 붙으면 재고가 된다. 이력이 생긴다. 대화가 가능해진다. 히스토리가 추적된다. 관리 대상이 된다.

제조업이 부품번호로 한 것을, 소프트웨어에서는 SOM ID로 한다.

SOM Tree — 실체화된 것들이 살아있는 모습 SOM Tree — the living shape of named things

이름이 붙은 것들이 쌓이면 무엇이 보이는가.

나무가 보인다.

SOM Tree
              🌳 프로젝트
             /           \
      🌿 인증 모듈      🌿 주문 모듈
      /      \               \
 🍎 LOGIN  🍎 SIGNUP      🍎 ORDER
  -001       -002           -003

뿌리는 프로젝트다. 줄기는 모듈이다. 가지는 기능 영역이다. 열매 하나하나가 SOM ID다.

열매의 색깔이 품질 상태를 말한다. 빨간 열매는 검증 완료. 검은 열매는 아직 검증되지 않은 것. 벌레 먹은 열매는 결함이 있는 것.

전체 나무를 보면 — 어느 가지에 문제가 집중됐는지 한 눈에 보인다. 특정 열매를 클릭하면 — 그 SOM ID에 연결된 기획서, 코드, 테스트 결과, 결함 이력, 배포 기록이 펼쳐진다.

Software Digital Twin
사마천의 표(表)가 2차원 그리드였다면, SOM Tree는 3차원이다.
계층(수직) · 프로세스(방사) · 시간(깊이) — 세 축이 하나의 SOM ID를 중심으로 모인다.

눈에 보이지 않던 소프트웨어가 — 이름을 통해 실체화되고, 나무의 형태로 살아있는 모습이 된다.

마지막으로 A closing thought

노자는 이름 붙이기를 경계했다. 그 통찰은 깊다.

그러나 소프트웨어 현장에서 26년을 보낸 나는 다른 것을 목격했다.

이름이 없어서 존재하지 못한 것들. 이름이 없어서 연결되지 못한 사람들. 이름이 없어서 사라진 히스토리들.

이름을 붙이는 것이 해방이었다.

각자의 언어로 갇혀있던 기획자, 개발자, QA, 운영자가 — LOGIN-001이라는 하나의 이름으로 처음으로 같은 것을 보게 된다.

그것이 SOM이 오랜 시간 끝에 찾은 답이다.

그리고 다시 탄생한다 나무로.... (이것은 다음 연재에 계속)