develop

국산 CMS의 몰락

🚨 주의: 다소 민감한 내용과 개인의 주관을 포함하고 있습니다.

그래서 무슨 일이냐?

국내 CMS는 대부분 사실상 망했고, 그나마 남아있는 건 XE1, Rhymix, XE3, 그누보드가 전부다. 하지만 XE1은 이제 개발팀이 모두 빠져나가서 방치되고 있고 Rhymix는 개발진과 유저층이 너무 적으며, XE3는 그냥 유저가 없다. 그누보드 진영은 뭐 레거시의 끝판왕이니... 더이상 말하지 않겠다.

코로나 시국과 더불어 국내 CMS 커뮤니티는 허허벌판 그 자체다. 신규 자료도 잘 안나오고 유저의 활동은 몇몇 네임드가 몇글자 떠들고 다니는게 전부일 뿐 신규유입이라 할 것도 거의 없다.

🤔 왜 이렇게 됬을까?

발전도 없이 인터넷 세계에서 살아남을 수 있을 것이라 생각했던걸까? 위에서 언급한 CMS 모두 PHP 기반이라는 공통된 개발 스택과 함께 눈에 띄는 혁신이 없었다. 물론 CMS라는 건 호환성과 안정성을 고려해서 코어의 구조는 쉽게 바뀔 수 없다는 점은 인정한다. 하지만 Wix, Headless CMS, Wordpress Calypso 등의 새로운 기술들을 어떤 식으로 이기겠냐는 말이다. 국내 CMS가 가진 유일한 장점은 한국형 BBS(게시판 시스템)를 지원한다 점 뿐이다. 하지만 한국형 BBS만큼 기초적인 CRUD에 가까운 것이 또 어디있을까. 글을 작성하고 읽고 수정하고 삭제하는 일련의 과정과 함께 페이지네이션이 거진 강제되는 게시판의 UX덕에 무한스크롤을 구현하려고 애를 먹을 필요도 없다.

나아가 한국형 BBS는 이제는 큰 메리트가 되지 않는다. 이미 게시판 커뮤니티의 호황기는 오래 전에 끝났고 정말로 게시판 하나만 필요한 커뮤니티에서는 굳이 설치형 CMS를 쓸 필요없이 네이버 카페나 다음 카페를 사용하면 그만이었다. 당장에 유튜버나 게임 커뮤니티가 네이버 카페에서 이루어진다는 점만 보아도 그 수요가 달라졌다는 것을 알 수 있다. 기능이 부족할지 몰라도 근본적인 게시판의 기능은 대기업의 수준에서 관리되고 있기 때문에 CMS보다 좋으면 좋았지 부족할 것이 없다. 일반인이 혼자서 큰 비용과 시간소모 없이도 운영할 수 있다는 점이 가장 크게 작용했다.

그 이상의 것들(기능, 디자인 등)을 필요로 하는 이들도 굳이 CMS를 사용할 이유가 없다. 개발을 모르는 일반인이 사용하기에는 원하는 기능이 없을 가능성이 높고, 불편한 UX와 각종 버그들, 기어코 코드 수정이 요구되는 현실을 맞이하면 그게 바로 전환점이다.

여기서 비용을 지불하고 개발자를 고용하더라도 불필요한 기능과 소스, 레거시로 가득한 더러운 코드로 인해 유지보수가 힘들고 기능 추가가 어렵다는 점으로 인해 어차피 비용을 투자할거라면 내가 쓰기 편하고 가장 선호하는 형태로 직접 만드는 것이 더 낫다는 것이다. 트위치와 연동되고 스트리머별로 게시판을 생성할 수 있는 '트게더'가 대표적인 사례로 꼽힌다.

아주 간단한 형태에 개인화가 요구되는 케이스는 더더욱 참담하다. 나름대로 진입장벽이 낮을 수 있는 영역이고 일반인을 대상으로 하는 CMS에게는 이 부분이 상당히 중요할 수 있다. CMS는 결국 이 개인화가 중요한 것이다. 사용자는 아주 적은 기회비용으로 간단한 디자인이 들어간 몇가지 페이지와 게시판, 블로그 등이 필요했을 뿐이지만 CMS는 이에 대해 수많은 학습을 요구한다. 이에 대한 대안으로 Wix, SquareSpace와 같은 GUI 형태로 사이트를 직접 디자인하고 구성할 수 있는 빌트인 사이트 빌더가 이미 시중에 너무나도 많기 때문에 굳이 그 많은 기회비용과 금전적 비용까지 감당하면서 설치형 CMS를 사용할 이유가 없는 것이다.

당장에 쇼핑몰 쪽도 웬만큼 큰게 아니라 편집숍 클래스 정도의 쇼핑몰은 imweb이나 SixShop 등의 일반인의 눈높이에서 사용성을 극대화하고 기능을 최적화한 빌더가 선택받기 시작했다.

⚡ PHP vs node.js

먼저 워드프레스의 사례를 이야기할건데 그 전에 PHP에 대한 이야기부터 잠깐 하고 가겠다. 필자는 PHP 진영을 무시하는 것은 아니지만 PHP는 언젠가 역사의 뒤안길로 사라질 수도 있는 언어라고 생각한다. 그 언어가 부족해서가 아니라 생태계와 언어의 갈라파고스화 때문이다. node.js 진영은 PHP 진영이 쌓아온 생태계를 순식간에 앞질렀다. 그 이유는 접근성에 있다고 생각한다. 성능에 대한 골아픈 이야기는 하고 싶지 않다. 내가 본 관점에서 node.js가 PHP를 앞지르고 후에는 몰락시킬 수도 있다고 판단하는 이유는 단순하다.

아주 간단한 정적 웹 페이지를 만드려면 어떻게 할까? html 파일을 만들고 css로 디자인하고 js로 돔을 조작하여 간단한 기능 정도를 넣을 수 있을 것이다. 여기서 이 기능을 담당하는 js가 node.js의 언어다. 웹 코딩 교실같은 곳에서 중고등학생들이 배우는 그 간단한 것들로 굉장히 복잡한 서버를 개발할 수 있다는 것이다. 웹 페이지에서만 사용되던 JS가 애초부터 갖고 있던 괴랄한 접근성으로 빠르게 사용자층을 포섭하였고 그로 인해 생태계가 미친듯이 확장되었다.

이게 어째서 잘만 살고 있는 php를 몰락시킬 것이냐. 생태계의 확장은 그만큼 빠른 변화와 확장성, 안정성 등을 고루 갖출 수 있게하는 기반이다. 가뜩이나 본인들의 유저층도 어느정도 빼앗긴 php인데 심지어 PHP와 node.js는 자주 비교되는 타입이기 때문에 node.js가 발전하는 만큼 php는 쇠퇴할 것이라는 말이다. 당장에 PHP 진영에서 자주 거론되던 페이스북은 PHP를 직접 커스텀해서 쓰다가 그것마저도 문제가 많아지자 node.js 기반으로 갈아탔다. '그' 페이스북이 말이다. 워드프레스 진영 또한 뮬런버그의 주도하에 node.js 기반의 기술스택이 추가되었다. 이제부터 워드프레스의 영리한 전략을 후술하도록 하겠다.

🤷‍♂️ 어떻게 하면 좋을까?

워드프레스가 아주 좋은 사례될 것 같아 소개한다. 뮬런버그의 주도 하에 php 기반으로 쌓여버린 기술부채를 조금씩 해치우려는 움직임이 시작되었다. 워드프레스에 Node.js + React 기반의 관리자 기능이 추가된 것이다. 일명 칼립소(Calypso) 프로젝트. 기존 워드프레스의 코어는 그대로 사용하면서 관리자 영역의 Back-end는 node.js로 재구현하고 Front-end는 SPA 방식을 차용했다. 서버를 REST API 형태로 사용하는 것은 서버와 클라이언트 코드의 완벽한 분리를 의미한다.

이 프로젝트는 워드프레스의 PHP와 SPA에 대한 입장을 볼 수 있는 케이스이기도 하면서 워드프레스가 Headless CMS라는 또 다른 방향성을 제시하는 것이기도 하다. 이러한 형태의 웹이 단순한 유행에 지나는 것이 아닌 이제는 정말로 따라가야할 변화점이라는 것을 시사한다.

XE, Rhymix 진영에서 이런 반론을 들은 적이 있다.

우리도 REST API를 사용할 수 있고, SPA로 구현할 수 있다.

누가 그걸 몰라서 하는 소리일까? 추가적인 개발없이도 코어를 REST API 서버로만 사용할 수 있어야 진정한 REST API라고 생각한다. Headless CMS가 완벽하다고는 생각하지 않지만 적어도 현 시대가 추구하는 웹 개발의 형태에 가장 잘 맞는 방법론이라고 생각한다. CMS를 REST API 서버로 활용하면 웹에서 벗어나 다양한 클라이언트에서 활용할 수 있다. 게임이라던지, 어플이라던지, 윈도우 프로그램이라던지? CMS에서 렌더링까지 담당하는 건 설치형 CMS가 가진 자유도와 개인화의 의지와는 맞지 않다. 더욱이 CMS의 서드파티 중에서 가장 큰 비중을 가지는 것은 단연코 테마이다. 이 테마를 제작하는 개발자들에게 더 높은 가능성과 편의성을 제공할 수 있는 SPA 개발 방식이 앞으로의 미래를 위해 상당히 중요하다고 생각한다.