한국의 마틴 파울러가 되기
이 글은 구독하는 메일링에서 본 이미지가 내 관심사를 붙잡아서 그 우연한 자극이 불러내는 생각을 담은 글입니다.
그림 자체가 이분법을 효과적으로 쓴 사례 아닌가 싶습니다. 사실 원문을 찾아가 보면 구글이 제공하는 GA라는 측정 서비스를 설명하는 내용입니다. 그러나 저는 이와 무관하게 이분법으로 깔끔하게 그린 그림 자체가 주는 영감에 대해 글을 쓰고자 합니다.
<소프트웨어 설계에서 입자의 응용>편에서도 최봉영 선생님의 '일됨' 정의를 활용했습니다. 위 그림에서 이벤트 중심 (데이터) 모델을 생각해 보면 어떤 일에 사용자가 관계한 내용을 데이터로 정의하는 방식입니다. '일됨'의 정의에 따르면 사용자는 이쪽이거나 저쪽의 형태로 이벤트(일)와 관계를 맺어 '일됨'이라는 문구를 이룹니다.
반면에 세션 중심 모델은 사용자와 시간의 관계를 나누어 정의한 것입니다. 그래서 이벤트와 관계를 맺을 수도 있고 아닐 수도 있습니다. GA의 경우는 세션에서 벌어질 수 있는 관계의 종류는 페이지뷰(사전에 정의한 페이지 방문)이거나 이벤트 둘 중 하나네요.
포괄적인 정의인 '일됨'의 관점에서는 일됨 중에 페이지뷰 하나만 특별하게 구분한 것입니다. 결과적으로 이분법이지만, 개발자 출신으로 짐작해 보면 처음에는 페이지뷰 위주로 하다가 포괄적인 구조화를 시도한 것을 '이벤트'라고 부르는 것이 아닌가 웹 분석의 메커니즘(mechanism) 중심으로 추정하게 됩니다.
여기서 생각이 전환되었습니다. <우리가 시도하는 추적성은 무엇인가?>를 쓴 이후 몇 달 동안 진도를 나가다 멈춘 베터 어드민의 추적 기능에서 세션의 정의가 아직도 모호하다는 사실이 떠올랐습니다. 동료와 함께 할 일이지만, 사전 준비 차원에서 떠다니는 생각을 기록으로 남깁니다.
우선 단어 의미로 Session 뜻도 찾아보았습니다.
A session of a particular activity is a period of that activity.
특정 행위를 하는 기간(period)을 뜻했습니다. 그리고 위키피디아를 찾아보니 우리가 추적하는 세션은 사실 Login Session이라고 부르는 편이 조금 더 객관적이었습니다.
In computing, a login session is the period of activity between a user logging in and logging out of a (multi-user) system.
이 글은 <Strangler Fig 패턴과 점진적 IT 투자>편을 마지막으로 작년 8월부터 올해 5월까지 고민했던 내용을 담은 베터코드 인사이트 시리즈를 한국의 마틴 파울러가 되기 하위 주제로 편입하여 재개하는 글입니다. 앞으로 베터코드가 펼칠 활동과 제품의 아이디어를 스케치하는 공간이 될 것입니다.
2. 대상과 조건 그리고 자기 속도에 부합하는 조건 만들기
4. 기술 부채를 Code Smell로 관리할 수 있는가?
6. 설계 요소의 사분면
7. 입자와 파동의 이중성을 소프트웨어 설계에 응용하기
8. 즉흥적으로 그린 그림에 입자와 파동 이중성 적용하기
13. 설계는 변화에 대한 준비인가?
3. Funnel을 마케팅 말고 engagement 분석에?
5. 기술 부채는 무엇인가?
8. loosely-coupled: 빠르게 재구성하는 힘
11. 기술은 쓰임새(use case)에 따라 고르고 조합한다
13. 회사 대표가 엔지니어에게 충분한 권한을 주는가?
16. Cloud Native 승자는 집적이 가능한 개발 조직
17. CNCF는 PaaS를 대체한다
19. 다시 보는 웹 앱의 미래