"웹 파편화는 필연…표준 기다리지 마라"

윤석찬 'W3C HTML5 컨퍼런스 2015' 기조연설

컴퓨팅입력 :2015/12/10 17:03    수정: 2015/12/10 17:52

사용자 운영체제(OS)나 브라우저 종류별로 웹 기술의 지원 수준이 천차만별인 '웹 파편화' 현상은 개발자들이 일관된 경험을 제공하는 데 걸림돌로 작용한다. 개발자들에겐 이런 웹 파편화가 없어져야 한다는 인식과, 웹 표준 확산을 통해 그럴 수 있다는 기대가 있었다.

개발자들의 통념을 뒤집는 관점이 제시됐다. 웹 파편화란 현실을 받아들이고 대응하라는 얘기였다. 여기엔 표준 확산이 파편화를 없애줄 것이란 관측은 허상이며, 개발자들은 결코 사용자 환경이 웹 표준으로 100% 통일되는 시점에 도달할 수 없을 것이라는 전망이 담겼다.

이런 견해를 제시한 주인공은 웹기술 커뮤니티에서 인지도가 높은, 전 다음커뮤니케이션 DNA랩 팀장 윤석찬 씨. 그는 지난 9일 서울 삼성동 코엑스 'W3C HTML5 컨퍼런스 2015'에 한국웹표준프로젝트 리더 자격으로 기조연설을 맡아 이같은 메시지를 구체화했다.

한국웹표준프로젝트는 지난 2005년 발족돼 '실전 웹 표준 가이드'를 발간, 무료 배포했고 2010년 '실전 HTML5 가이드' 발간과 'HTML5 오픈컨퍼런스' 주최 등을 맡았던 웹표준 진흥 단체다. 모질라, 클리어보스, 언디파인드, DXD, 프론트엔드개발자그룹, KWAG 등 국내 웹 관련 커뮤니티 회원이 참여하고 있다. 그 모체는 1998~2014년 사이 활동한 국제 웹표준 진흥 커뮤니티 웹스탠더드프로젝트(WaSP)다.

윤석찬 씨는 표준 확산이 파편화를 없애지 못할 것이라 봤다. 다른 소프트웨어 플랫폼과 웹 기술의 특성이 본질적으로 다르기 때문이다. 그는 웹 개발자들은 iOS나 안드로이드 등 다른 플랫폼 개발자들처럼 기술 기반이 안정화되고 통일되기를 기다려선 안 된다고 지적한다.

"여타 SW개발처럼 웹 개발도 플랫폼에 의존합니다. (안정화 시점이 있기 때문에) iOS나 안드로이드 개발자들은 표준을 바라보고, 완성되길 기다립니다. 그런데 웹 개발자들은 표준을 기다리면 안 됩니다. 웹은 항상 진화하고, 100% 우리가 원하는 상태에 도달하지 않으니까요. 파편화는 기본적인 것, 원래 있던 것입니다. 웹에서 파편화를 배제하는 환경은 어불성설입니다. 20년 전에 있긴 있었죠. '액티브X'를 쓸 때. 그 시기는 웹 생태계의 '암흑기'였습니다. 아무 것도 발전하지 않았죠. 지금은 빠른 발전이 이뤄지고 있죠."

윤석찬 한국웹표준프로젝트 리더. 전 모질라한국커뮤니티 리더였고 인터넷포털 다음커뮤니케이션의 개발조직 DNA랩 팀장으로도 일했다. 현재 아마존웹서비스코리아 에반젤리스트를 맡고 있다.

웹기술 업계에서 '리빙 스탠더드(Living Standard)'라 일컫는 개념이 윤 씨가 말한 '항상 진화하는 웹'을 가리킨다. 살아 있는 생물처럼 표준도 시시각각 달라진다는 의미를 강조한 용어다. 개발자들이 일관된 사용자 경험을 만들기 위해 시시각각 대응해야 한다는 뜻이기도 하다.

"새 브라우저가 나올 때마다 최신 표준 기술을 테스트해 보고, 그걸 어떤 사용자들에게 제공할 것인지 고민하는 방식으로 대응해야 합니다. 제가 있었던 포털 사이트 운영 회사는 불특정 다수 대규모 사용자들에게 서비스를 제공하는데요. 다른 회사는 그렇지 않고 특정 사용자에게 특정 서비스를 제공합니다. 이 경우엔 하위 호환성과 폴백 기능을 제공하는 식으로 더 많은 사용자들에게 대응하려는 자세가 요구됩니다. 새로운 기능이 언제 표준화할 것인가 기다리면 결국 항상 뒤쳐지게 됩니다. 프론티어가 돼야 합니다."

소속 회사가 운영해야 하는 서비스와 목표 사용자의 특성 등을 종합해, 새로운 웹 기술 도입과 기존 사용자 환경 지원의 균형점을 찾아 대응하는 게 파편화된 웹 환경에서 권장할만한 웹 개발자의 일이라는 얘기다.

윤 씨는 만일 통일된 사용자 환경만 존재한다면, 웹 개발자는 할 일이 없어진다고 지적했다. 기계가 대응할 수 있는 일만 남을 것이기 때문이다. 오히려 파편화가 존재하기에 웹 개발자들에게 할 일이 있다는 생각을 갖고 최근 동향에 관심을 가져 달라는 주문이 이어졌다.

그에 따르면 최근 웹 생태계는 개방과 공유라는 근본 가치를 위협받고 있다. 페이스북처럼 로그인을 필수로 요구하며 폐쇄적으로 작동하는 소셜 웹서비스, 안드로이드와 iOS처럼 검색을 통해 접근할 수 없고 플랫폼 수준에서 콘텐츠를 통제하는 모바일 게이트키퍼 등이 인기다.

이런 서비스와 플랫폼이 커지는 사이에 웹 기술도 큰 변화를 보인다. 1990년대 웹은 '문서' 개념에 초점을 맞췄다면, 2000년대에 들면서 '애플리케이션'으로 변화를 꾀하기 시작했다. 변화는 2가지 흐름으로 나눠볼 수 있다. 하나는 표준화와 구현 방식의 분업, 다른 하나는 웹 애플리케이션 개발 방식이다.

브라우저 개발업체들이 모인 WHATWG가 차세대 HTML 규격을 만들면서, 자바스크립트 API 지원이 일반화한다. 2010년 이후 제이쿼리(jQuery)를 필두로 한 프레임워크와 라이브러리 등 여러 프론트엔드 기술이 등장하는 계기가 됐다. 최근까지 브라우저 개발사들이 HTML5 표준화에 집중하는동안, 여러 프레임워크 등을 만드는 곳에서 구체적인 구현 수단을 지원하는 형태로 일종의 '분업 체제'가 자리잡았다.

HTML5 표준화 작업과 제이쿼리같은 자바스크립트 활용 도구의 발달은 AJAX라 불리는 웹애플리케이션 개발 방법론의 유행을 낳았다. 그 뒤 '앵귤러JS', '엠버JS', '백본JS' 등 도구와 '싱글페이지 애플리케이션'이란 방법론이 확산됐다. 최근엔 메테오(Meteor) 프레임워크나 페이스북의 '리액트JS'같은 라이브러리로 서버와 클라이언트 기반 렌더링 조합으로 구현되는 '아이소모픽 애플리케이션' 개념도 대두됐다.

웹 생태계의 이런 변화는 자바스크립트에 대한 의존도를 엄청나게 높이는 상황을 동반했다.

"자바스크립트 의존성이 계속 커졌습니다. 신기능을 기존 브라우저에서 구현하지 못하는 경우가 늘었죠. 최신 표준 규격이 많다보니 브라우저 업체들이 대응하는 덴 한계가 있었고요. 개발자들은 신기능이 작동되면 그걸 쓰고, 안 될 땐 라이브러리를 통해 기존 기능으로 비슷하게 대응할 수 있는 폴백 방식을 많이 쓰게 됐죠. '모더나이저'나 '폴리머처럼, 지원 격차를 메워주는 '폴리필' 라이브러리도 많아졌고요."

윤 씨는 개발자들이 자바스크립트를 활용해 다양한 표준 기술을 조합하는 방향으로 움직임에 따라 브라우저 개발업체들은 그걸 지원할 수 있는 기본 수준의 API를 제공하는 데 초점을 맞추는 흐름도 생겼다고 전했다.

"웹 개발자는 고수준의 기능을 만들어내고, 그걸 단순화할 수 있는 저수준 API를 브라우저에 탑재하는 경향이 생겼습니다. W3C 내부에서 일괄 주도하는 기존 표준화 방식대로라면 2~3년 걸릴만한 일을 외부 개발자들이 먼저 실험적으로 만들어내고, 테스트하고, 이후 웹표준화에 반영되게 유도하는 선순환 구조가 된 거지요."

자바스크립트 의존성이 늘면서, API도 덩달아 대유행하게 됐다. 페이스북의 '좋아요' 단추나 구글 애널리틱스 코드처럼 외부 URL로 연결되는 자바스크립트 코드 사용도 그런 예에 해당한다. 자신의 인프라에 이상이 없어도 외부 서비스의 운영 상태에 따라 전체적인 사용자 경험이 달라질 수 있는 사이트가 많아졌다는 점에서 예전과 크게 달라졌다.

"라이브러리만드는 개발그룹이나 페이스북 트위터 구글 네이버 다음 등 굉장히 많은 회사들이 API를 만들어 쓰고 있습니다. 모바일에도 넣고 있고요. 지난 2010년부터 2015년까지, API 제공과 사용 현상이 엄청나게 증가하는 추세입니다. 아주 일반적인 현상이 됐죠. 비즈니스 모델로 제공되는 사례도 많아졌고요."

윤 씨에 따르면 외부 개발자들이 접근할 수 있는 오픈API뿐아니라, 조직 내부에서 개발에 필요한 자원을 제공하고 사용하는 형태로도 API가 확산되고 있다.

"다음커뮤니케이션에서 일할 때 API를 담당했는데, 외부 API 대비 내부 API 사용 비중이 몇 배 이상이었습니다. 넷플릭스는 외부 API를 제공하지 않는데, 내부에선 API 트래픽이 엄청나게 높은 회사로 알려져 있고요. 기업들의 내부 소프트웨어 개발 패턴도 API에 기반하는 경우가 많아진 겁니다. 조직의 내부 서비스 연결관계를 보면 규모가 작은 여러 서비스들이 인터넷의 여러 웹처럼 이어져 있는 모습을 볼 수 있어요."

그는 넷플릭스의 사례를 언급하며 내부 API 기반 서비스 개발방식의 확산이 백엔드 인프라 효율화와 맞물려 '마이크로서비스' 방법론이라는 운영전략과도 연결되고 있다고 설명했다.

관련기사

"조직 내부 서비스를 작게 구성하고 그걸 필요에 따라 엮는 식으로 구현하는 걸 '마이크로서비스'라 부릅니다. 최근 2~3년 사이에 백엔드 개발 환경에서 API를 활용하는 인프라로 발전해 왔습니다. HTTP와 JSON같은 가벼운 프로토콜과 공개된 기술로 유연하게 사용자 트래픽을 커버할 수 있어요. 다양한 데이터베이스(DB)를 활용해 서로 다른 서비스를 만들어낼 수 있죠. 웹의 기본 특성처럼 '느슨하게 맞물린(loosely coupled)' 서비스가 되는 거죠. 넷플릭스, 길트, 트위터 등이 마이크로서비스를 구축, 운영하는 회사들입니다."

윤 씨는 웹 기술 시장이 단일 표준아래 일치단결하는 시나리오는 불가능하지만, 오히려 더 빠른 발전을 거듭해 개발자들의 적극적인 역할이 더욱 중요해질 것이라고 내다봤다. 표준화 트렌드와 애플리케이션 개발 방법론의 변화에 맞물려 자바스크립트의 중요성이 한층 강조됐고, 이는 웹개발 현장의 서비스 제공 시나리오에서 프론트엔드와 백엔드 그리고 디자인 영역간의 긴밀한 협업을 필요로한다고 덧붙였다.