본문 바로가기
Homo Architect

SW 아키텍트는 지휘자이다.

by javauser 2010. 7. 20.
SW 아키텍트를 건축을 짓는 아키텍트에 비유도 하지만, 오케스트라를 지휘하는 지휘자로 비유하기도 합니다. 얼마 전에 국내 한 방송국에서 방영된 '베토벤 바이러스' 라는 드라마는 지휘자의 역할을 아주 잘 보여주는 장면들이 많이 있었습니다. 드라마의 지휘자인 마에스트로인 강건우(이하 강마에)는 오합지졸인 실력이 형편없는 오케스트라 단원들을 대상으로 공연을 하게 됩니다.

이 드라마에서 강마에가 보여준 지휘자의 모습이 바로 SW 아키텍트가 보여주어야 할 모습과 흡사합니다. 우선은 지휘자로써 강마에는 최고의 실력을 갖추었습니다. 물론, 그가 최고의 실력을 갖추는 개인적인 노력은 드라마를 통해서 보여지며, 그 또한 최고의 실력가로 지휘를 하게 됩니다. 하지만, 최고의 실력을 갖추었다고 해서 곧 바로 악단을 훌륭하게 지휘할 수 있다는 의미는 아닙니다. 드라마에서도 나왔듯이 그는 단원들과 부딪히며 서로 코드를 맞춰가는 소통을 하게 됩니다.
 

두번째로, 강마에는 오케스트라 악단이 구성된 다음에 곧 바로 연습에 들어가기에 앞서 개별로 악기 튜닝을 명령하고 자신의 사무실로 들어갑니다. 자신의 사무실 의자에서 악기를 튜닝하는 소리를 하나 하나 들은 강마에는 바로 사무실에서 튀쳐나와서 개개인 별로 어떠한 특징이 있는지를 지적합니다. 악기를 다룬지가 오래된 아줌마에게, 정통 클래식이 아닌 전자 악기를 다루는 대학생에게, 캬바레에서 근근히 악기를 연주하며 먹고 사는 악사에게, 폐가 안좋아 숨을 고르지 못하는 은퇴한 오케스트라 단원이었던 노인에게 그는 이들의 잘못된 습관과 현재 상태를 독설로 바로 지적합니다. 여기서 놀라운 사실은 강마에가 악기를 튜닝하는 소리에 바로 이러한 사실들을 알았다는 것입니다.

세번째로, 모든 지휘자가 그렇듯이 지휘자로써 강마에는 자기의 색깔을 오케스트라 단원을 통해서 충분히 관객들에게 보여주는 공연을 했다는 것입니다. 실력이 형편 없었지만, 강마에는 이들이 가지고 있는 실력을 그대로 사용하여 조화롭게 만들어서 하나의 음악을 만들었다는 사실입니다. 그것도 자신이 가지고 있는 색깔인 것입니다. 이 순간에 강마에가 지휘한 음악은 동일한 제목이라고 하더라도 자신의 라이벌인 정명환이 지휘한 음악과는 전혀 다른 것이라는 점입니다.
 

SW 아키텍트는 프로젝트에 참여하면서 전체 프로젝트를 지휘하게 됩니다. 이는 프로젝트 관리자가 프로젝트를 관리하는 방식과는 전혀 다릅니다. 서로 다른 기술을 가진 전문적인 사람이 있는가 하면, 아직 본격적으로 프로젝트에 경험이 그다지 없는 초보자들도 같이 일하게 됩니다. 이들과 같이 어떻게 조화롭게 SW를 만들 수 있을 것인가는 SW 아키텍트가 늘 부딪히는 문제입니다. SW 아키텍트가 가지고 있는 사상과 원칙을 이들에게 이해되게 전달하고, 이해한 대로 구현하게 만들어야 합니다. 때로는 이들의 의견을 듣기도 하고, 때로는 이들에게 관련된 기술을 가르치기도 해야 합니다.

SW 아키텍트는 강마에게 그랬듯이 프로젝트를 참여한 개개인의 습관과 가지고 있는 역량을 잘 이해하고 있어야 합니다. 지휘자가 이들의 능력에 따라서 특정 부분에서 솔로로 연주하게 할지, 아니면 연주하는 악기 소리나 강약을 어떻게 할지를 결정해주어야 합니다. 이는 개인이 가진 능력보다는 전체적인 맥락에서 조화를 이루게끔 조정해야 하는 부분입니다. 한 프로젝트에서 SW 아키텍트의 능력은 초인적이 되어야 합니다. 모든 것을 SW 아키텍트가 처리할 수는 없는 일입니다. 때로는 기능을 구현하는 개발팀과 협업을 할 수도 있어야 하며, 솔루션 벤더들과 같이 작업해서 매끄럽게 구현하는 시스템과 연결할 수 있어야 합니다. 혹은 PMO와 같이 전체 개발 진행 상황을 모니터링하고 어떠한 부분이 SW 아키텍처 입장에서 문제가 되고 있는지를 파악하고 이에 대한 적절한 해결책을 마련해야 합니다. 만일, SW 아키텍처가 프로젝트 초기에만 정해지고, 이후에는 변경될 필요가 없다라고 생각한다면 지휘자가 처음에만 오케스트라 단원을 세팅하고, 무엇을 할지를 알려준 다음에 각자 알아서 연주하라고 하는 것과 같습니다. 지휘자는 매번의 연습을 통해서 어떠한 부분이 자신이 생각하고 있는 부분과 맞는지 안맞는지를 알아내고 이를 조율합니다. SW 아키텍트 역시 SW가 만들어지는 과정을 처음부터 끝까지 지휘해야 합니다.

여러분은 현재 만들어졌거나 만들어지고 있는 시스템의 SW 아키텍처를 보고 누가 만들었는지를 알 수 있습니까? 대부분의 프로젝트에서 만들어지는 SW 아키텍처를 보면, 크게 차이가 없다라는 생각을 할 수 있을것입니다. 물론, 시스템의 용도나 활용에 따라서는 달라질 수는 있지만, 유사한 도메인에 만들어진 SW 아키텍처를 보고 어떠한 의도를 통해서 만들어졌는지는 아마 알 수 없을 것입니다. 이처럼 SW 아키텍처에 차이가 없다는 의미는 지휘자가 악보에 쓰여진 그대로 전자음을 만들어내듯이 지휘했다라는 의미와 동일합니다. 만일, 디지탈화된 전자음이 동일한 음악을 만들어낸다면 오케스트라 단원과 지휘자가 무슨 필요가 있습니까? 지휘자에 따라서 동일한 음악이라 하더라도 연주가 달라지듯이 SW 아키텍트에 따라서 동일한 도메인에 대한 SW 아키텍처는 아키텍트가 가지고 있는 사상과 생각을 반영하여 독특한 색깔을 나타낼 수 있어야 합니다. 3계층 아키텍처이지만, 논리적으로 3계층에 위치하는 레이어가 아키텍트마다 달라질 수 있으며, 동일한 MVC 패턴이라 하더라도 컨트롤러에서 구현하는 비즈니스 로직의 기준이 달라질 수 있습니다. 어떠한 것이 정답이라고 말할 수 없으며, 이는 SW 아키텍트가 합리적인 원칙과 원리에 따라서 자신이 가지고 있는 사상과 생각을 접목시켜서 해당 비즈니스에 최적으로 고민한 결과가 됩니다. 결국 동일한 도메인의 SW 아키텍트는 비즈니스의 요건과 SW 아키텍트의 사상에 따라서 독특한 색깔이 나타나게 되어 있습니다.

아키텍처라는 의미가 해당 영역의 요소와 이들 간의 관계를 규정하는 원리와 원칙이라고 할 수 있습니다. 지휘자가 음악을 구성하고 있는 오케스트라 단원과 이들 간의 조화로운 관계를 규정하듯이 SW 아키텍트는 시스템을 구성하는 요소들을 식별하고, 이들 간에 조화롭게 연결되도록 규정하는 작업을 수행하게 됩니다.
반응형