21장, 아키텍처 도식화 및 프레젠테이션

2022.09.18

아키텍트로서 성공하려면 무엇보다 효과적인 의사 소통이 중요하다. 아키텍트가 아무리 시대를 뛰어늠는 훌륭한 아이디어를 갖고 있다 해도 그들에게 자금을 댈 고객사 관리자와 아이디어를 실제로 구현할 개발자가 납득하지 못하면 빛을 볼 수 없다.

아키텍처를 도식화하고 프레젠테이션하는 일은 아키텍트의 두 가지 핵심 소프트 스킬이다.

21.1 도식화

아키텍처 토폴로지는 아키텍트와 개발자가 늘 관심을 갖는 부분이다. 아래 그림을 보면 구조가 어떻게 맞물리는지 알 수 있고 팀 간에도 공통의 이해를 형성할 수 있다. 따라서 아키텍트는 언제나 다이어그램을 작성하는 기술을 갈고 닦아야 한다.


21.1.1 도구

도구도 도구지만 (특히, 설계 초기에) 정확도가 떨어지는 아티팩트를 간과해선 안 된다. 조기에 일시적인 설계 아티팩트를 구현한 아키텍트가 자신이 창조한 것에 집착하는 현상, 우리가 무리한 아티팩트 집착이라고 명명한 안티패턴을 예방할 수 있기 때문이다

무리한 아티팩트 집착


무리한 아티팩트 집착은 어떤 아티팩트에 대한 한 사람의 무분별한 집착과 그 아티팩트의 개발 시간 사이의 비례 관계를 말한다다. 가령, 어느 아키텍트가 비지오(visio) 같은 도구로 멋진 다이어그램을 작성하는 데 2시간이 걸렸다면, 그는 자신이 투자한 시간에 거의 비례해서 이 아티팩트(다이어그램)에 집착하게 된다. 만약, 다이어그램 작성에 4시간이 걸렸으 면 그만큼 더 집착할 것이다.

기술 의존도가 낮은 도구를 사용하면 팀원들이 옳지 않은 것은 버리고 자유롭게 실험, 개선, 협력, 토론함으로써 아티팩트의 진정한 특성을 발현시킬 수 있다.

아키텍트는 멋진 도구로 훌륭한 다이어그램을 작성할 필요가 하지만, 그 전에 팀이 충분한 시간을 투자해 설계를 이터레이션한 결과로 뭔가 유의미한 것을 얻어낼 수 있도록 만들어야 한다.

레이어

다이어그램 도구는 대부분 레이어를 지원합니다. 아키텍트는 레이어 기능을 잘 익혀두면 좋다 레이어를 사용하면 작성자가 여러 항목들을 논리적으로 연결해서 각각의 레이어로 만들어 숨김/표시할 수 있고 굳이 필요하지 않은 세부 정보는 감출 수 있다. 또 나중에 프레젠테이션을 할 경우를 대비해서 그림을 단계적으로 그릴 때에도 도움이 됩니다.

스텐실/템플릿

스텐실을 사용하면 보통 다른 기본 셰이프를 조합한, 자주 쓰이는 시각 컴포넌트를 라이브러리화할 수 있다. 조직에서 공통적인 패턴이나 아티팩트의 스텐실을 구축하면 아키텍처 다이어그램을 일관되게 작성할 수 있고 새 다이어그램을 빠르게 그릴 수 있다.

마그넷

다이어그램 도구는 대부분 도형 사이의 선을 쉽게 그리는 기능을 갖고 있다. 마그넷은 선을 자동으로 연결/정렬하는 기능으로, 셰이프를 쉽게 그릴 수 있게 해주고 다른 시각적 효과도 제공한다.

이런 보조 기능 외에도 다이어그램 도구는 선, 색상, 그 밖의 시각적인 아티팩트를 지원해야 한다. 또 다양한 포맷으로 내보내기 할 수도 있어야 한다.

21.1.2 도식화 표준: UML, C4, ArchiMate

소프트웨어 기술 다이어그램은 몇 가지 공식적인 표준이 제정되어 있다.

UML

통합 모델링 언어(Unified Modeling Lang, UML)은 1980년대에 경쟁했던 3개의 설계 철학을 통합한 표준이다. 한때 전 세계 최고의 표준으로 군림했지만 위원회가 설계한 많은 것들이 그렇듯, 사용을 의무화하지 않다 보니 많은 영향을 끼치지는 못했다.

C4

C4는 UML의 결함을 보완하고 보다 현대적인 방식으로 접근하고자 사이먼 브라운 개발한 다이어그램 기법이다. C4에서 'C' 4개는 다음을 의미합니다.

  • 콘텍스트, Context Corterd 유저 역할, 외부 의존성 등 시스템의 전체 콘텍스트

  • 컨테이너, Container 아키텍처 내부의 물리적(논리적일 때도 많지만) 배포 경계 및 컨테이너. 이 뷰는 운영자와 아 키텍트의 훌륭한 접점을 형성한다.

  • 컴포넌트, Component 시스템의 컴포넌트 뷰. 대부분 아키텍트가 시스템을 바라보는 관점과 거의 일치한다.

  • 클래스, Class C4는 UML과 동일한 스타일의 클래스 다이어그램을 사용하는데, 이 클래스 다이어그램은 그 자체로 효과적이어서 굳이 교체할 필요가 없다.

모든 기술 다이어그램 도구들이 그렇듯 아키텍트가 필요한 모든 종류의 설계를 전부 다 표현하기는 어렵다. C4는 컨테이너와 컴포넌트의 관계가 달라질 수 있는 모놀리식 아키텍처에 가장 적합하며, 마이크로서비스 같은 분산 아키텍처와는 잘 안 맞다.

아키메이트

아키메이트(ArchiMate, Architecture-Ani*mate의 합성어)는 비즈니스 도메인을 중심으로 아키텍처를 기술, 분석, 시각화하는 오픈 소스 엔터프라이즈 아키텍처 모델링 언어이다. 아키메이트는 오픈 그룹의 기술 표준으로서 주로 엔터프라이즈에서 많이 쓰이는 경량 급 모델링 언어를 제공한다. 아키메이트의 목표는 모든 엣지 케이스를 다루는 게 아니라 가능한 한 작게 만들자는 것이다. 그 결과 많은 아키텍트들의 호응을 얻게 되었습니다.

21.1.3 도식화 지침

자신만의 모델링 언어를 사용하든, 공식적인 언어를 사용하든, 아키텍트는 다이어그램을 그리는 자신의 스타일을 구축하고 스스로 효과적이라고 생각한 프레젠테이션에서 자유롭게 다이어그램을 빌러 써야 한다. 기술 다이어그램을 작성할 때 참고할 만한 일반적인 가이드라인을 몇 가지 제시한다.

제목

다이어그램의 모든 엘리먼트에 청중이 쉽게 알아볼 수 있도록 제목을 붙여준다.

선은 어느 정도 굵어야 눈에 잘 들어옵니다. 정보의 흐름을 나타내는 선은 화살표를 이용해 트래픽 방향을 표시합니다. 화살표 머리는 종류마다 의미가 다를 수 있으니 일관성 있게 그려야 한다.

동기 통신은 실선, 비동기 통신은 점섬ㄴ으로 나타내는 것은, 아키텍처 다이어그램에서 몇 안 되는 표준이다.

셰이프를

정규 모델링 언어는 표준 셰이프를 모두 기술하지만, 소프트웨어 개발 업계 전체에서 통용되는 표준 셰이프는 따로 없다. 따라서 아키텍트는 자신의 표준 셰이프 세트를 만들고 필요시 조직 전체에 전파하여 일종의 표준 언어를 만든다.

레이블

다이어그램 항목마다 레이블을 붙인다. 특히 보는 사람 입장에서 모호하게 보일 수 있는 항목은 반드시 레이블을 붙여야 한다.

색상

IT 책은 오랫동안 흑백으로 인쇄되어 왔기 때문에 아키텍트, 개발자는 흑백 그림에 익숙하고 특별히 색상을 쓸 일은 없었다. 우리는 아직도 흑백을 선호하지만 색상을 달리하면 서로 다른 아티팩트를 알아보기 쉽다.

어떤 이유로든 셰이프가 모호할 떄에는 다이어그램에 키를 넣어 각 셰이프가 가리키는 것을 명확히 밝히는 게 좋다.

21.2 프레젠테이션

현대 아키텍트가 갖춰야 할 또 다른 소프트 스킬은 파워포인트나 키노트 같은 도구로 효과적인 프레젠테이션을 하는 능력이다. 이런 도구는 현대 조직의 만국 용어로서 사람들은 모두 여러분이 이런 도구에 능숙하리라 기대하지만, 안타깝게도 워드 프로세서나 스프레드시트와 달리 프레젠테이션 도구의 사용법을 익히는 데 따로 시간을 투자하는 사람은 별로 안 보인다.

프레젠테이션을 하는 발표자는 자신의 아이디어를 전개하는 속도를 조절할 수 윘지만, 문서는 그것을 읽는 독자가 속도를 조절하기 때문에 아키텍트가 프레젠테이션 도구에서 배워야 할 가장 중요한 기술 중의 하나는 바로 시간을 조작하는 방법이다.

21.2.1 시간 조작

아키텍트는 전환과 애니메이션 기능을 이용해 슬라이드 간 경계를 감춘다. 「프레젠테이션 교과서」는 쿠키커터(Cookie-Culver)라는 자주 발생하는 안티패턴을 소개한 뒤, 아이디어는 그것을 표현하는 단어 수가 정해져 있지 않기 때문에 일부러 슬라이드가 꽉 차게 보이려고 콘텐츠를 욱여 넣지 말라고 권고한다. 사실, 대부분의 아이디어는 한 장의 슬라이드로는 부족하다. 디졸브처럼 전환 및 애니메이션을 교묘하게 잘 조합하면 발표자가 개별 슬라이드 경계를 감추면서 여러 슬라이드를 연결한 하나의 스토리를 전달할 수 있다.

21.2.2 점진적 빌드

「프레젠테이션 교과서」는 기업 프레젠테이션에는 총알투성이 시체(Bullet-Riddled Corpse)라는 일반적인 안티패턴이 있다고 지적한다. 사실상 발표자의 노트나 다름없는 슬라이드를 청중이 볼 수 있도록 프로젝터로 비춰주는 행위를 말한다. 청중은 텍스트만 가득한 슬라이드를 보면서(슬라이드가 보이면 읽지 않을 수 없는 분위기인지라) 전체 내용을 읽고 10분 동안 발표자가 천천히 청중에게 총알을 읽어주는 동안 멍청히 앉아 듣는다.

프레젠테이션을 하는 발표자는 구두(verbal)와 시각(visual), 2개의 정보 채널을 갖고 있습니다. 슬라이드를 과도한 텍스트로 채워 넣고 그것을 그냥 소리내어 읽는 것은 한쪽 정보 채널에는 과부하를 걸고 다른 쪽 정보 채널은 굶주리게 하는 셈이다. 따라서 이 문제를 해결하려면 슬라이 드를 점진적으로 빌드함으로써 한 번에 전부가 아니라, 필요한 만큼의 정보만(가급적 시각적 으로) 쌓아 올려야 한다.

21.2.3 인포덱스 vs 프레젠테이션

파워포인트나 키노트 등의 도구에서 슬라이드 덱을 만들고 실제로 청중에게는 보여주지 않는 식으로 프레젠테이션을 하는 경우도 있다. 참석자는 꼭 잡지 기사처럼 이메일로 전달받은 슬라이드 덱을 각자 자기 페이스에 맞게 읽는다. 인포덱스는 프레젠테이션 도구를 일종의 데스크탑 출판 패키지처럼 사용하여 프로젝터로 표시하는 게 아니라) 정보를 시각적으로 요약한 슬라이드 덱이다.

인덱스와 프레젠테이션. 두 매체의 차이점은 콘텐츠의 종합성과 전환/애니메이션 효과의 사용이다. 청중이 잡지 기사처럼 덱을 쓱 훑어보는데 작성자가 굳이 시간 엘리먼트를 추가할 필요는 없을 것이다. 자료의 양도 차이가 있다. 인포멕스는 스탠드얼론 형태라 작성자가 전달하려는 모든 정보가 담겨 있지만, 프레젠테이션을 할 때에는 (의도적으로) 슬라이드에 프레젠테이션의 절반만 넣고 나머지 절반은 앞에 있는 발표자가 말로 할 수 있다!

21.2.4 슬라이드는 절반의 스토리

발표자가 가장 많이 하는 실수는, 프레젠테이션의 전체 콘텐츠를 슬라이드로 만들어버리는 것이다. 슬라이드 내용이 뭔가 포괄적인 경우에는 모든 청중이 끝까지 프레젠테이션을 앉아서 지켜보느라 시간을 낭비하지 않도록 슬라이드 덱을 모두에게 이메일로 보내는 게 좋다. 또 주요 논점을 더 강조하기 위해 과도한 자료를 슬라이드에 집어넣는 실수도 아주 흔하다. 발표자는 두 가지 정보 채널을 가지고 있다는 사실을 전략적으로 잘 응용하면 메시지에 더 많은 힘을 실을 수 있다.

21.2.5 불가시성

불가시성은 청중이 발표자에게만 주목하도록 프레젠테이션에 빈 검정 슬라이드를 삽입하는 정말 단순한 패턴이다. 두 가지 정보 채널(슬라이드와 발표자)이 있고 그 중 하나 (슬라이드)를 끄면 자연스럽게 발표자가 더 부각될 것이다. 따라서 발표자가 요점을 말하고 싶을 때 이런 빈 슬라이드를 삽입하는 것이다.

프레젠테이션 도구의 기본 사용법과 멋진 프레젠테이션을 만드는 기술은 아키텍트 스킬 세트에 큰 플러스가 된다. 아이디어는 참 훌륭하지만 그것을 잘 표현할 방법을 모르면 자신의 비전을 실현할 기회를 얻지 못하겠죠. 아키텍처는 협업이 필수입니다. 뜻을 함께 할 사람을 얻으려면 자신의 비전을 설득시켜야 합니다.