건축이라고 하면 실제 건축이 이뤄지는 공사장만을 생각하기 쉬운데 의외의 방법으로 건물을 올리는 방법이 있다. 모듈러 건축이라는 것인데, 건물의 벽체, 배관, 욕실 등 주요 구조물을 공장에서 70~80%가량 미리 제작하고, 현장으로 운송, 조립해 완성하는 방법을 말한다. 모듈을 어떻게 정의할지에 따라 방 하나가 모듈이 될 수도 있고, 집 한채가 모듈이 될 수도 있다. 그리고 이런 집(모듈)을 쌓아 아파트를 만들기도 한다.
링크한 기사에서도 언급하지만 전체 건축물(아파트)를 빨리 만들 수 있다는 것이다. 모듈을 현장이 아닌 공장에서 만들기 때문에 날씨등의 변수로부터 자유롭고, 표준화된 방식으로 제작하기 때문에 품질 측면에서도 강점을 갖는다. 공장에서 생산된 모듈을 현장에서는 조립만 한다. 조립하는 사람들도 “모듈” 조립에 손쉽게 익숙해질 수 있기 때문에 그만큼 조립 속도(생산성)도 높다. 하지만 반대 급부도 존재한다. 기사처럼 규모의 경제가 만들어지지 않으면 모듈러 방식의 건축 비용이 기존 방식에 비해 돈이 더 든다. 그리고 표준화된 모듈이기 때문에 개성을 살릴 수 없다. 맞춤이 되지 않기 때문에 사람이 모듈에 맞춰야 한다.
공간의 문제를 푸는 것이 건축이다. 아파트든 사무실이든 공간의 목적을 건축을 통해 해결한다. 그리고 유니크한 건물을 굳이 원하는게 아니라 공간에 대한 문제만을 만족시킨다면 모듈러 건축은 훌륭한 방안이 될 수 있다. 과한 비유긴 하지만 우리가 쇼핑몰에서 기성복(옷)을 고르는 것과 크게 다르지 않다.
뜬금없는 건축 이야기였지만 AI를 가장 효과적으로 사용하는 방법이 이와 매우 유사하다고 생각한다. AI는 관계를 기반으로 추론한다. 우리가 컨텍스트를 제공했을 때 해당 컨텍스트와 관련성이 높은 항목들을 조합해 결과를 만든다. 개발 프로젝트에서 조합할 수 있는 모듈들을 문제 정의(컨텍스트)와 함께 제공하면, AI는 효과적으로 이 모듈들을 조합해 문제를 풀 수 있는 코드를 더 빠르게 만들 수 있다. 여기서 모듈은 표준화된 라이브러리일수도 있고 공통 서비스일 수도 있다. 풍부한 모듈들이 존재한다면 그만큼 조합을 통해 문제를 해결할 수 있을 뿐만 아니라 프로젝트의 결과로 나온 서비스의 지속 가능성, 운영 품질을 담보할 수도 있다.
모듈을 공장이라는 안전한 환경에서 만드는 것처럼, 개발 프로젝트에서 사용될 모듈 역시 안전하게 만들 수 있다. 모듈이 담당하는 기능을 프로젝트와 Decoupling된 상태일 뿐만 아니라 기능에 집중된 응집도(Cohesion)을 높일 수 있다. 계약 형태가 유지되는 릴리즈 관리가 관건이긴 하지만 적절한 배포 전략을 구사한다면 충분히 모듈 자체의 지속성을 보장할 수 있다.
표준 라이브러리 및 공통 서비스들을 준비하는 비용과 노력이 꽤 많이 들어간다. 또 프로젝트 숫자에 비례해 효과가 나온다. 정말 모듈러 건축과 흡사한 성격이 있다. 조직에서 수행하는 프로젝트의 개수/규모가 커져가는 어느 지점에서는 반드시 공통 서비스(특히 인증/인가 및 Observability에 관련해서는)를 준비해야 하고 꼭 사용해야 한다. 굳이 AI가 아니더라도 공통 서비스는 있어야 하지만 AI 기반 개발을 가속화하기 위한 필수 요소다. 하지만 이외로 공통 서비스가 있다고 하더라도 사용하지 않는 경우가 종종 있다. 가장 첫 번째 이유는 아이러니컬하지만… “몰라서” 안쓰는 경우다. 그리고 두번째가 “우리는 특별해요, 달라요!!“가 될 것이다. 크게 이 두가지 이유들 때문이라도 아키텍처 중심의 거버넌스 체계가 조직내에 꼭 필요하다.
