brunch

"플랫폼"에 대하여

쓸모 있는 모듈러 디자인

by 심야서점

제품 플랫폼의 의미를 정확히 모르더라도, 플랫폼이라는 용어는 자주 듣고, 사용했을 겁니다. 정확한 의미는 모르더라도, 플랫폼이란 용어의 사용에는 위화감이 없을 겁니다. 이번 글에서는 최대한 플랫폼이 가지고 있는 일반적인 특성을 기초로 제품 개발에 한정하여 개념을 설명하도록 하겠습니다.


1. 플랫폼은 공통 자산이다.


열차가 도착하여 승객이 승하차하는 곳, 화물을 상하차 하는 곳을 플랫폼이라고 하죠. 열차가 바뀌더라도 플랫폼은 그만큼 자주 바뀌지 않습니다. 열차를 새롭게 만들어도 기존 열차 플랫폼은 그대로 활용하는 것이 정상이죠. 카카오톡이나 라인, 페이스북을 하나의 플랫폼이라고 말합니다. 그 안에서 어떤 서비스, 어떤 활동, 어떤 플레이어가 포함되더라도 카카오톡, 라인, 페이스북이란 플랫폼을 바뀌지 않습니다.


바뀌지 않는 것이 플랫폼일까요? 뭐, 그런 속성도 있습니다. 그렇지만, 중요한 것은 플랫폼이 쌓아둔, 그동안 만들어둔 유무형 자산을 활용한다는 겁니다. 열차 플랫폼에서는 역사 내 만들어 놓은 인프라, 열차 플랫폼 시설 등을 열차가 그대로 활용할 수 있습니다. 카카오톡, 라인, 페이스북은 어떤 플레이어, 서비스, 어떤 활동이 들어오더라도 그동안 쌓아온 회원, 서비스, 핵심 서비스와 연결된 API 등을 활용할 수 있음을 의미합니다.


그래서, 플랫폼은 맨땅부터 시작할 필요 없이 거인의 어깨에서 시작할 수 있는 공통 자산입니다.


2. 플랫폼은 모듈이다. 모듈은 규칙이다. 곧 플랫폼도 규칙이다.


플랫폼도 하나의 모듈입니다. 단, 특수하게 규모가 큰 모듈입니다. 그리고, 플랫폼 그 자체는 여러 개의 모듈이 결합된 또 하나의 시스템도 될 수 있습니다.


플랫폼이 모듈이기 때문에 모듈의 특성을 그대로 상속받았습니다. 그중 하나가 플랫폼도 규칙이란 특성입니다. 앞서 플랫폼은 공통 자산이라고 말했습니다. 공통 자산으로서 플랫폼이 작동하기 위해서는 변하는 것과 변하지 않는 것들 사이의 규칙이 필요합니다. 예를 들어서, 열차 플랫폼을 미리 만들어두었는데, 새롭게 만든 열차의 폭이 해당 플랫폼을 이용할 수 없게 되었다면 플랫폼이 의미가 있을까요?


플랫폼을 활용하기 위해서는 플랫폼이 제시하는 규칙을 준수해야 한다는 전제가 깔립니다. 플랫폼이란 용어 자체가 규격화된 땅을 의미합니다. 즉, 사전에 정의된 규칙이 반영된 존재가 플랫폼이란 용어인 셈이죠. 앞서 설명한 카카오톡, 라인, 페이스북도 그 안에서 특정 서비스나 활동을 하기 위해서는 해당 플랫폼이 제시하는 규칙을 지켜야 합니다. 그렇지 않으면 그들이 제공하는 서비스를 활용하지 못하거나, 쫓겨나게 되겠죠?


3. 플랫폼은 아키텍처이다.


플랫폼은 규칙이기 때문에 플랫폼은 그 자체가 아키텍처가 됩니다. 시스템이 설계해서 이루고자 하는 컨셉을 담은 상위 레벨 산출물이 아키텍처인데, 이를 준수하기 위한 기본 틀이 플랫폼입니다. 이런 의미에서 플랫폼은 프레임워크 이란 용어와도 일맥상통합니다. 시스템의 아키텍트가 현재 만들고자 하는 시스템, 향후 계열로 만들고자 하는 시스템들이 자신이 의도한 컨셉대로 설계하고 개발할 수 있도록 정의해놓은 결과물이 아키텍처인데, 이를 조금 더 확실하게 규정해놓은 결과물이 플랫폼이고, 프레임워크입니다.


상세 설계자나 개발자, 후속 설계자나 개발자는 자신에게 주어진 아키텍처를 문서가 아닌 반제품 형태인 플랫폼이나 프레임워크를 활용하여 큰 신경을 쓰지 않더라도 아키텍트의 의도대로 시스템을 설계하고 개발할 수 있게 되는 겁니다.


그런 의미에서 플랫폼은 그 자체로 아키텍처라고 볼 수 있습니다. 아키텍처를 준수할 수 있는 키가 되는 도구로 플랫폼을 활용하기 때문이죠.


4. 플랫폼은 반제품이다.


플랫폼은 아키텍처이고, 이를 활용하여 제품을 포함한 시스템을 만들면 아키텍트의 의도를 반영하게 되기 쉽습니다. 그렇지만, 플랫폼 그 자체를 완성된 제품, 완성된 시스템으로 볼 수 없습니다. 절반만 만들어진 제품, 절반만 완성된 시스템입니다. 나머지는 상세 설계자와 개발자의 몫으로 그들의 재량과 상세 요구사항에 달렸습니다.


반제품으로서의 플랫폼은 프레임워크의 의미와 통하는 듯싶으나, 미묘하게 개념이 다릅니다. 프레임워크는 보통 설계 단에서 활용되는 반제품입니다. 즉, 신규로 시스템을 설계하기 위해서 활용하는 기본 틀, 아키텍처 구현 물이지만 결과물과는 거리가 멉니다. 반면에 플랫폼은 그 자체가 구현 결과물로 볼 수 있습니다. 둘 다 아키텍처의 결과물이지만, 플랫폼은 구현된 결과에 가깝습니다.


결론적으로 프레임워크나 플랫폼이나 시스템의 그랜드 아키텍처의 결과물로 볼 수 있지만, 아직 설계 단계에 머물고 있는 것이 프레임워크, 구현에 가까운 결과물이 플랫폼으로 볼 수 있습니다.


실제로는 구별 없이 사용하고 있긴 합니다. “플랫폼은 프레임워크과 다르다.”라는 것만 인지하고 있으면 됩니다.


5. 플랫폼은 제품군 계획이다.


플랫폼은 공통 자산이란 의미는 다양한 제품, 다양한 시스템에 플랫폼을 활용하겠다는 의도가 내포된 것입니다. 그렇기 때문에 플랫폼은 그 자체가 제품이나 시스템에 대한 다세대 계획이자 공용화 계획입니다. 여러 세대에 걸쳐서, 다수의 제품에 걸쳐서 플랫폼의 활용을 고려하지 않으면 플랫폼은 활용성이 떨어지고, 오히려 발전의 방해가 될 뿐입니다.


6. 플랫폼은 레거시이다.


플랫폼은 공통 자산이라고 했습니다. 어제의 자산은 오늘의 부채가 될 수 있습니다. 자산이 있다는 건 그만큼 변화에 취약하다는 것을 의미합니다. 자동차 플랫폼을 만든다는 건 단순히 반제품을 설계하고 생산함을 의미하지 않습니다. 해당 플랫폼을 기준으로 공정과 공급망을 구축해두었을 겁니다. 즉, 눈에 보이지 않는 자산들이 플랫폼이 제대로 활용될 때는 극대화했던 효율성 향상 효과만큼, 플랫폼을 변화하려고 할 때는 방해 요인이 될 수밖에 없습니다.


이번 글에서는 플랫폼에 대해서 다뤘습니다. 모듈의 한 종류로 플랫폼을 생각하면 조금 더 이해하기 쉬울 수 있으나, 모듈 보다 일반화하여 활용하고 있는 용어이기 때문에 잘못된 개념을 바로잡기 어려울 것으로 생각됩니다. 몇 가지 특성 위주로 플랫폼을 기억하고 있으면 도움이 될 겁니다.





keyword
매거진의 이전글"모듈"에 대하여