MSA 기술과 적용 연구 12
지난 주에 <Netflix API 아키텍처 진화>편을 올리고 조회수 급증을 경험했다. 심지어 발행 다음날도 하루가 지난 이 글이 조회수를 리드하고 있었다.
재미로 묻고 지인과 이야기를 하면서 Netflix라는 이름의 위력이거나 베스트 프랙티스에 대한 의존 현상일지도 모른다는 생각을 했다. '베스트 프랙티스'를 키워드로 구글링 해보니 첫 번째로 뜬 기사 제목이 <베스트 프랙티스의 어두운 이면>이다. 놀랍게도 무려 10년 전인 2012년 기사다.
나는 IT컨설팅을 하던 시절에 CIO 나 IT관리자들이 실패해도 안전한 방법을 찾기 위해 선진 사례를 무조건 추종하는 인상을 받았다. (이 문제를 확대하면 <고장난 한국사회를 고치자!>에 썼던 <눈 떠보니 선진국>에서 다룬 이야기로 수렴될 수도 있다.)
이런 현상은 미국의 소프트웨어 기업을 보고 배우는 우리나라 개발자들에게도 영향을 미치고 있을테지? 경영자나 CIO나 개발자나 이제 막 선진국으로 진입한 대한민국에 살고 있으니.
구글링에 따르면 10년이 지나도 아직 다수가 각성을 못하고, 중간만 가자고 요식행위에 오늘 하루를 투자하고 있는 모양이다.
<MSA 기술이전 사업을 시작하다>편에 페친님의 해학 넘치는 이미지를 인용한 적이 있다.
단기 프로젝트로 혹은 위에서 시켜서 느닷없이 적용하거나 외주 업체에 의존해서 MSA를 구축하면 (당연하게) 모노리틱하게 지었으면서 우기는 꼴이 된다. 모노리틱은 나쁘고 MSA는 좋다고 말하는 것이 아니다.
프로그램의 구조는 그 쓰임(기능)에 적합해야 한다. 이를 FFF(Form Follow Function)이라고 한다. 모양을 결정하는 것은 기능이어야 한다. 응용 프로그램은 사용자들이 기능을 쓰는 쓰임새(usecase)에 따라야 한다. 그런데 그와 무관하게 만들어졌다면 모노리틱이든 MSA든 부적합하다. 이런 경우를 우리는 과잉 엔지니어링이라 부르기도 한다. 그게 아니라면 곧 기술 부채라는 현상을 불러오기도 한다.
답은 FFF를 실천하면 된다. 비즈니스와 조직과 동기화 된 모양으로 적용해야 한다. 구체적으로 어떤 지침을 줄 수 있을까?
비즈니스는 결국 성장을 도모한다. 하지만 사업적 이익을 시스템이 가져다 줄 수는 없다. 튜닝 레벨이 중요한 수준이 거대 사이즈가 되기 전에는 불가능하다.
그래서 기술이 사업이 기여할 때는 구조를 결정할 때다. 이때, 비즈니스 시도에 IT가 제약이 되지 않아야 한다. IT를 모르는 순수한 비즈니스맨 입장에서 표현하면 (아이디어 실행에) 발목을 잡지 않는 것이 중요할 때가 시스템이 사업 성장에 직접 영향을 주는 시기다.
어떻게 그렇게 할 수 있을까? 위임이 잘 이행되도록 시스템을 확장시켜야 한다. 앞서 훑어 본 페친 Juunini Im님 글이 떠오른다.
위임은 권한 이양을 전제로 한다. 하지만, 회사 목표 혹은 유관 비즈니스와의 정렬도 전제가 되어야 한다. 이상적으로 말하자면, 최적의 의사결정 구조와 MSA는 밀접한 관련이 있다. 소수의 사람들이 현실(데이터)을 보고 바로 결정할 수 있다면 빠른 비즈니스 진화 곧 성장을 기대할 수 있다. (물론 통계적으로 그렇다는 이야기)
하지만, 이를 실행하는 일은 간단치 않다. 같은 비전을 공유하는 공동체를 만드는 일이기 때문이다.
이쯤에서 자연스럽게 내가 연재까지 했던 아기발걸음이 떠오른다. 리더십이 필요하다. 리더가 우리 회사와 조직을 아기라고 보고, 성장 목표에 도달할 때까지 인내하고 함께 해야 한다. 그렇게 회사가 같은 비전을 꿈꾸는 공동체가 되는 순간 MSA는 그에 적합한 모양이 될 것이라고 믿는다.
그 과정에서 갈등을 포용할 수 있는 조직 문화가 만들어지고, 이는 제대로 된 협업을 위한 공통체의 필수 기반이 된다. 그런 여지가 없고 획일적인 목소리를 따른다면 시장 변화를 견뎌낼 유연성은 기대하기 어렵다. 그런 유연성이 없다면 왜 굳이 어렵게 MSA를 도입해야 할까?
MSA 기술과 적용 연구 시리즈