베터코드 인사이트의 부활
ByteByteGo Newsletter에서 본 이미지가 충돌질을 자극했습니다. 저는 설계 덕후니까요.
그래서 이번에는 동료 개발자가 그린 그림과 코드를 우버 그림과 연결해 보는 시도입니다. 일단 디테일을 무시하고 일대일 대응을 시도를 하려고 마음먹습니다.
간딘히 대응시켜 볼 수 있었습니다. 하지만, 정말로 실효가 있을지 의심 섞인 눈초리로 하나하나 따져 보았습니다. 먼저 그림 자체의 제목을 보았습니다. 감이 오는 좋은 제목으로 이내 마음에 들었습니다. 제목이 Data Flow at Uber Infrastucture인데요. Data Flow로 시스템을 조망하는 일은 흔히 말하는 DB Molder나 DBA 관점이 아니라 마윈의 DT(Data Technology) 관점을 시각화하는 데에 효과가 있을 듯했습니다.
마윈의 탁월한 식견을 담은 문구를 옮겨 봅니다.
"미래의 경쟁은 더 이상 전력과 같은 에너지를 확보할 수 있는 구역을 갖기 위해 다투는 것이 아니라 인재와 혁신가치를 둘러싼 경쟁이 될 것"이라며 "갖고 있는 데이터로 사회에 얼마나 많은 가치를 창출해 내느냐가 중요하다"라고 강조했다.
그리하여 이름을 'Bettercode Digital Core Data Flow'라는 이름을 붙여 보았습니다. 근데, 이름을 붙일 실체(entity) 혹은 그림(diagram) 자체가 없네요. 베껴서 이점을 얻겠다는 목표나 역할만 있게 된 꼴이니까 그 상황을 인식하게 됩니다. 시도해 봐야 배울 수 있으니 그림을 그려 봅니다.
최근 한국 Tidy First 모임에서 '어떻게 아키텍트가 될 수 있는가?' 묻는 분이 떠올랐습니다. 작은 경험이지만 함께 나눌 수 있겠다는 생각이 들어서. 누군가 읽고 따라 할 수 있도록 단계적으로 설명해 보겠습니다. 먼저 그림의 역할이나 목적에 해당하는 이름을 붙입니다. 그리고 제가 차용하고 싶다고 느낀 부분을 추려서 넣어 봅니다. 아래 그림에서 왼쪽 내용이죠. 결국 우버 그림에서 차용하는 내용이란 세 개의 구성 요소로 구획을 누는 것과 각 구획의 이름이었습니다.
하지만 알맹이는 우리 시스템이어야 합니다. 그래서 동료가 개발한 내용 중에서 데이터에 해당하는 요소만 추려서 할당(혹은 관계 맺음) 해 봅니다. 그렇게 한 것이 우측 그림이죠. 이런 식의 행동을 그럴싸하게 부르는 말이 있는데. 베스트 프랙티스(Best Practices)라고 하죠. 베스트 프랙티스라는 것도 알고 보면 그저 템플릿의 일종입니다.
여기에 또 다른 우연이 더해집니다. 페벗 김성무 님의 User Profiling에 대한 글을 읽고 받은 영감을 떼내어 일부를 덧붙이는 것이죠. 차용하고 싶은 개념은 바로 다음 다발말[1]이 설명하고 있습니다.
The ultimate goal of user profiling is to better understand users. <중략> User profiling requires academic knowledge in fields such as humanities, psychology, sociology, and behavioral economics, as well as programming skills, statistical analysis, mathematical expertise, and creativity. Above all, precise data is essential.
이를 요약한 듯한 직관적인 그림도 인용합니다.
한편, 제가 차용하는 데에 있어 중요한 점은 다음 부분입니다.
Profiling can be applied to many different entities such as products, categories, services, sections, pages, and brands. Interestingly, I’ve often discovered key areas for improvement in unexpected entities. <중략> Profiles can uncover aspects of ourselves that we may not even be aware of.
프로파일링Profiling 적용은 비단 사용자user에 국한된 것은 아니란 점이죠.
즉흥적 시도지만 최종적인 노하우 채용 구체화 결과물은 다음 그림입니다. 마지막에 반영한 Profiling은 흔히 사용하는 Analytics와 무슨 차이일까 싶지만, 현재로서는 User Profiling에 대한 글의 인상적인 포기말에 대한 기대가 실질적인 차이라고 할 수 있습니다.
Profiles can uncover aspects of ourselves that we may not even be aware of.
주의할 점은 이 그림은 아직은 가설 단계이고, 이점이 있는지 확인한 후에 구체화해 나갈 것이란 점입니다.
[1] <한국말 말차림법>에서 제안한 단락에 대한 토박이 말입니다. 왜 다발말인지는 <언어에 대한 일반이론>에서 일부 답을 얻을 수 있습니다.