brunch

종이를 웹 화면에 대입했더니 재미있게 머리가 굴러간다

어떻게 하면 모델링을 잘할 수 있을까?

by 안영회 습작

아이가 지역 행사에 참여한 후에 주보처럼[1] 생긴 종이를 들고 왔습니다.

습관적으로 머리가 돌아갔습니다. 직업병 같기도 하고, <왜 소프트웨어가 유통업을 먹어치우고 있는가?>를 썼던 영향인 듯도 합니다.


디지털 전환에 필요한 모델링 사고 노출 시도

아무튼 여기서는 종이를 매개물로 쓰는 활동의 쓰임새를 추출해서 디지털로 전환하는 일을 상상해 보며 '모델링 사고' 중에서 독자들에게도 유효한 패턴이 드러나길 바라며 쓰는 글입니다.


먼저 아이 주머니에서 꺼냈을 때는 종이가 접혀 있어 제목이나 용도 정도를 파악할 수 있었는데, 펼쳐 보니 활동의 구성 요소가 되는 장소들과 그에 대한 설명이 나타났습니다. 머릿속에 모델링을 염두에 둔 낱말들을 떠올랐는데요. 아마도 그에 익숙하지 않은 독자들은 어색하게 느껴질 수도 있겠네요. 이제 찬찬히 살펴보며 공감과 이해가 가능하게 좁혀 보도록 하겠습니다.


방면(方面)이기도 하고 구역(區域)이기도 한 Facet

첫 번째로 본 내용은 바로 하나의 면(面)입니다. 공교롭게 <if문을 실행할 수 있는 수준이라면 모두 액터다!>에서 다룬 면(面)의 예시가 되겠네요. 우연적으로 연결되는 상황이 참 흥미롭군요. 독자들 입장에서는 상황이 복잡하니 우선 최봉영 선생님의 교훈을 따라 <낱말의 뜻을 깊고 넓게 묻고 따지는 일의 소중함>부터 실천하기로 합니다.


한자사전을 찾아보니 면의 뜻이 굉장히 다양합니다. 심지어 군 다음에 나오는 면도 같은 한자였다니 놀랍네요. 하지만, 제가 면(面)을 꺼낸 이유는 <if문을 실행할 수 있는 수준이라면 모두 액터다!>에서 헥사고날 아키텍처를 다룰 때 Facet에 대응하는 속말을 꺼낸 것입니다. 반면 면(面) 자의 풀이 중에서 '낯'은 굉장히 익숙합니다. 제가 면(面)이라고 말할 때 머릿속에서 영어 단어 face를 함께 떠올리기도 하니까요.

그래서인지 낯과 거리가 있다고 느끼는 표현은 낯설게 느껴지는 듯합니다. 쭉 훑어보니 어딘가로 향하는 방면(方面)이 마주하는 대상에 대한 지향도 갖고 있음을 깨닫고, 연이어 인터페이스를 연상시킵니다. 한편, 지방의 구획 단위로 쓰인 면을 보면서 구역(區域)의 의미도 있다는 사실을 깨닫습니다.[2]


Facet을 한국말로 하면 (보석을 깎은) '한 면'

다시 아들의 종이로 돌아가 봅니다. 이 예시에서 면은 종이로 되어 있으니 지면(紙面)이 됩니다. 한자사전을 찾아보면 두 번째 뜻으로 다음의 의미도 있습니다.

2. 글이 실린 면(面).

제가 가장 먼저 본 지면을 생각해 봅니다. 개발자라면 웹 페이지 관행으로 떠올리는 index.html에 상응합니다. 책이라면 표지가 될까요?

index 혹은 첫 번째 페이지와 관련해 경험했던 때를 돌아보며 몇 가지 단어를 주제어로 떠올려 봅니다. 제목, 정체성, 포탈, 종합 따위가 떠오릅니다. 제목과 정체성이 한 쌍이고, 포탈과 종합이 한 쌍이네요. 헥사고날 관점에서 보면 첫 번째 지면(紙面)은 정체성을 보여주고 관문 역할을 하는 대표(혹은 종합적인) facet이라 볼 수 있습니다. 뒤이어 facet을 한영사전에서 보면 '한 면'이네요.


내용물을 Facet 기준으로 나눠 보는 인식

접힌 지면을 펼치면 다른 페이지(紙面)가 보입니다. 해당 프로그램의 내용물contents에 대응하는 지면들입니다. 이들 세 쪽은 모두 같은 유형의 지면이고, 헥사고날 아키텍처式으로 따지면 하나의 facet이 됩니다.


한편, 뒤집었더니 전혀 다른 facet이 등장합니다. 지도상에서 위치가 보이는 내용물로 되어 있죠.

이렇게 뒤집는 중에 눈치챈 사실이 있습니다. A4지에 출력을 하려다 보니 배열 순서도 정해지고 접게 만들었다는 사실을 깨달을 수 있습니다. 웹 디자인 과정에서는 이와 같은 노력이 바로 페이지 레이아웃에 해당합니다. 웹 기술로 따지면 CSS 중심으로 벌어지는 페이지 조작이죠. 흥미로운 머리 굴리기입니다. :)


Facet이 다르면 다른 매체로 매질을 구성해야 한다

충동적으로 시도한 머리 굴리기는 종이와 웹 화면을 연결시키는 소프트웨어적인 사고라 부를 수 있습니다. 서로 다른 미디어media 혹은 매체(媒體)를 넘나들며 대응시키는 사고방식이죠. 매체에 대해서도 <낱말의 뜻을 깊고 넓게 묻고 따지는 일의 소중함>을 실천합니다.

풀이를 보니 다시 매질(媒質)도 뚜렷이 알고 싶었습니다.

재밌네요! 매질이 바로 매체가 만들어 내는 프로그래밍 방식에 대응되겠네요. facet이 다르면 다른 방식으로 작동해야 하니까요.


주석

[1] 어릴 때 교회에 다녔던 흔적이 연상되는 기억에 담겨 있네요.

[2] 위키피디아에서 facet 페이지를 보면 다른 의미도 더 살펴볼 수 있습니다.


지난 어떻게 하면 모델링을 잘할 수 있을까? 연재

(31회 이후 링크만 표시합니다.)

31. 사건을 포착하여 객체로 만드는 이벤트에 대한 설명

32. UI 디자이너가 만든 기획서로 객체 지향 모델링하기

33. Domain-driven 업무 소통: 업무를 객체로

34. ECB 패턴과 2025년의 실효성 해석

35. 사건 발생을 이벤트 정의와 발행으로 모방하기

36. 사건이라는 개념을 프로그래밍 이벤트로 응용하기

37. 프로그래밍에서 이벤트는 모듈화를 위해 도입한 개념

38. 사용자 경험과 연결되는 도메인 이벤트 설계 품질

39. 커피숍에서 우연히 만난 도메인 이벤트 대응 사례

40. 입차와 출차를 바탕으로 객체 설계의 꽃인 상태도 활용

41. 주요 비즈니스 상태에서 도메인 이벤트를 식별하기

42. 모델링에서 행위자를 뽑는 일은 시스템 맥락을 만드는 일

43. 비동기 호출과 이벤트 기반 프로그래밍의 연결

44. 객체의 작명과 속성 부여 과정이 경계를 만드는 일입니다

45. 실환경 검증의 중요성 그리고 액터와 사용자

46. if문을 실행할 수 있는 수준이라면 모두 액터다!

keyword
작가의 이전글if문을 실행할 수 있는 수준이라면 모두 액터다!