Daybreakin Things

Posted
Filed under 컴퓨터

얼마 전 오랜만에 텍스트큐브 코드를 보던 중 inureyes님과 했던 얘기다. 내가 명색이(...) 텍스트큐브 개발자인지라 다른 블로깅 도구로 갈아타기가 좀 그렇고 그런데, 요즘 Octopress 같은 static page 기반의 블로깅 도구들이 좋아보이더라고 얘기했더랬다. inureyes님은 '결국 15년만에 제자리로 돌아왔군요.'라는 한 마디로 대답. 그 말을 들으니 지난 역사가 떠올라 한번 정리해야겠다 싶었다.

대략 15년 전이면 2000년, 내가 중학교 1학년일 때다. 당시 우리나라에는 막 ADSL이 보급되고 있었고, 너도나도 홈페이지 하나쯤 만들어 운영하는 것이 유행이었다. 어찌어찌 HTML 공부해서 x-y.net이란 웹호스팅 서비스에 가입하고 매번 업데이트가 있을 때마다 나모웹에디터로 직접 HTML을 편집해서 올리곤 했다. 그때만 해도 사용자가 올리는 컨텐츠를 홈페이지에 반영해주는 CGI 같은 건 상당히 어려운 기술이었고(PHP도 대중화되기 전이었음) 방문자 수 카운터, 게시판, 방명록 등을 gif/frame/iframe 형태로 홈페이지에 삽입해주는 서비스들이 많이 있었다. 대표적인 게 superboard.com으로, 아기자기한 게시판 템플릿도 여러 종류 제공하고 게시물 목록의 배경색을 그라데이션 느낌이 나게 줄마다 색깔을 다르게 넣어주는 게 일종의 최신 트렌드였다. 오랜만에 생각나서 찾아보니 구글 캐시에 일부 흔적이 보이고 회사는 망한 듯. 그때를 살펴보면 메인 컨텐츠는 홈페이지 운영자들이 직접 HTML로 만들어 올리고, 아무래도 관리나 구현이 귀찮은 상호작용 기능들을 외부 서비스에 의존하던 형태였다.

그러다가 PHP가 웹프로그래밍 언어로 뜨기 시작하고, 웹호스팅들이 MySQL 서비스를 보편적으로 제공하게 되면서 2005년 무렵에는 설치형 도구들이 대세가 되었다. 특히 제로보드가 크게 유행하면서 홈페이지를 만들려면 반드시 써야 하는 도구란 위상을 가졌던 시절이었다. 텍스트큐브의 전신인 태터툴즈가 나온 것도 2005년이고, 오픈소스 프로젝트로 가동되기 시작한 것이 2006년 4월이었다. 워드프레스도 비슷한 시기에 오픈소스 프로젝트로 출발했다. 2007년 무렵부터 UTF-8 인코딩이 대세가 되었고, Firefox 사용자가 늘고 웹표준, Open API가 화두가 되면서 태터툴즈·텍스트큐브와 같은 블로깅 도구들은 OpenID 지원, 트랙백 지원, 스팸 차단 서비스 등을 추가해나가며 점점 CMS에 가까운 형태로 진화했다.

2007년 무렵부터는 블로깅 도구들이 크게 두 갈래의 길로 나누어졌다. 하나는 계속해서 오픈소스 프로젝트로 가동되며 사용자가 직접 자신의 호스팅에 설치해서 사용하는 설치형 방식과 다른 하나는 약간의 기술적 지식을 요구하는 설치형에 비해 가입만으로 쉽게 사용할 수 있는 가입형 방식이다. 우리나라에서는 네이버 블로그와 티스토리가 가입형의 대표주자였고 해외에서는 구글이 인수한 blogger.com과 워드프레스 개발자들이 직접 서비스화한 wordpress.com이 대세였다. 이때의 블로깅 도구들은 점점 세세하고 복잡한 기능을 탑재하면서(예: 웹브라우저에서 직접 사용하는 스킨 편집기) 한편으로는 진입 장벽이 높아지는 문제점도 보여주었다. 2008년 9월에는 태터툴즈와 텍스트큐브를 함께 개발하고 서비스화했던 태터앤컴퍼니가 한국 스타트업으로는 최초로 구글에 인수되었고 약 1년 간 textcube.com 서비스를 유지한 후 blogger.com으로 흡수되었다.

그러다가 2009년 11월 한국에 아이폰이 출시되고 2010년부터는 모바일웹이 대세가 되기 시작한다. 초반에는 데스크탑의 기능들을 그대로 옮기거나 혹은 아예 축소해서 정말 뷰어 용도로 쓰는 방식을 취하다가, 모바일 웹브라우저 기술이 무르익기 시작하면서는 데스크탑과 동일한(그러나 작은 화면 크기와 터치 인터페이스 최적화된) 사용자 경험을 추구하는 반응형 웹디자인이 뜨기 시작했다. 이때부터는 점점 복잡해져만 가던 웹 디자인이 미니멀리즘으로 회귀하기 시작했고 그 트렌드는 2014년 현재도 여전히 진행 중이다.

홈페이지를 만드는 방식도 많이 바뀌었다. 특히 GitHub에서 프로젝트 소개 페이지를 운영할 수 있는 static page 호스팅을 제공하자 static page들을 쉽게 관리할 수 있는 Jekyll과 같은 도구가 나오고 이를 응용한 Octopres와 같은 블로깅 도구까지 등장한 것이다. 사실 개인 홈페이지에서 자신의 글이나 컨텐츠를 보여줄 수 있는 공간과 사용자들의 코멘트나 방명록을 받을 수 있는 공간 정도만 있으면 되는데, 기존의 설치형 블로깅 도구들은 CMS를 추구하면서 지나치게 복잡해져 있었다. 사람들은 생각보다 단순해서 오히려 기능이 많아지면 잘 못 쓴다. 그런 역효과가 다시 static page 기반의 홈페이지로 회귀하는 트렌드를 만든 것이다. 게시판이나 방명록의 위치는 SNS 계정을 활용해 댓글을 남길 수 있는 Disqus와 같은 서비스들이 차지하였다. 결국 15년 전과 똑같아진 것이다. 물론 세부사항을 들여다보면 지금은 15년 전과는 많이 다르다. Open API라는 흐름을 거치면서 서비스 간의 인증이나 연동이 보다 강화되었고, AJAX 기술을 통해 외부 서비스이지만 마치 그 웹사이트의 일부인 것처럼 동작한다.

설치형 도구들은 그 자체로 모든 사용자가 원하는 기능을 최대한 넣는 것에 집중해왔다. 바로 자기완결성을 추구했던 것이다. 반면, Open API와 AJAX 기술은 하나의 웹사이트가 여러 서비스의 조합(composition)으로 만들어지는 기반을 제공하였고, 각각의 전문화된 서비스를 이용해 원하는 목적으로 가공하도록 해주었다. 이것이 바로 분산화·전문화다. 15년의 사이클을 돌고 돌아 이 두 트렌드가 엎치락 뒤치락 했듯이, 컴퓨터의 발전 역사도 중앙집중식 메인프레임에서 개인화·분산화된 PC 환경으로 왔다가 다시 중앙집중식 클라우드로 가는 모양새를 볼 수 있다. 클라우드도 기존의 메인프레임으로는 상상할 수 없던 대규모 스케일을 제공한다는 점에서 큰 흐름은 반복되었지만 똑같지는 않다. 마찬가지로 분산화된 서비스도 그 흐름은 반복되었지만 그 연결은 훨씬 긴밀해졌다.

inureyes님이 이어서 했던 이야기는 여러 주체의 서비스를 모아서 무언가를 구축하면 그것이 많이 쪼개져있을수록 시스템 전체의 불안정성이 올라간다는, 다분히 물리학자다운 이야기였다. A, B, C, ... 서비스를 엮어서 홈페이지를 만들었는데 그 중에 하나라도 동작하지 않는다면 홈페이지는 완전한 서비스를 제공할 수 없게 되는 것이다. 하나에만 의존할 때보다 여러 개에 의존할 때 각각의 실패 확률이 동일하다면 여러 개에 의존할 때 당연히 전체 실패 확률이 올라간다. 서비스의 분산화와 반대인 데이터의 중앙집중화는 정 반대의 문제를 야기한다. 모든 것이 클라우드에 있는 상황에서 내 데이터가 있는 데이터센터가 지진과 같은 천재지변으로 소실된다면 한번에 모든 것을 잃을 수도 있다. 적어도 자기 장비에 자기가 데이터를 가지고 있으면 그 데이터의 운명은 자신의 운명과 동일하지만, 클라우드에 아웃소싱하는 순간 자신의 운명과는 상관 없어진다는 점에서 사람들은 실패가 발생하면 더 쉽게 멘탈 붕괴에 빠질 것이다. 게다가 데이터센터는 매우 많은 사람과 서비스를 담고 있기 때문에 단 하나의 실패가 매우 광범위하게 영향을 끼치는 "single-point-of-failure" 역할을 하게 될 공산이 크다.

IT의 흐름에서 자기완결성·중앙집중식 vs. 분산화·전문화·조합성의 구도는 아마 앞으로도 계속 반복되지 않을까 싶다. 어느 것이 좋다 나쁘다기보다는 각기 장단점이 있는데, 하드웨어의 성능과 시장의 성숙도(기술적인 장벽을 뛰어넘을 수 있는 사용자의 비율 차이)에 따라 그 선택이 달라질 것이다. 앞으로 15년 후에는 어떻게 변해있을까?