페북, PHP 대신할 새 프로그래밍 언어 공개

일반입력 :2014/03/21 10:43

페이스북이 '핵(Hack)'이라는 오픈소스 프로그래밍 언어를 선보였다. 회사는 개발자들이 이를 쓰면 '버그 없는 코드'를 빠르게 만들 수 있다고 주장했다. 회사가 10년도 더 이전에 창업할 때부터 써온 언어는 PHP였다. 핵은 이를 대신할 목적으로 만들어졌다.

페이스북은 20일(현지시각) 핵을 소개했다. 페이스북이 직접 만든 새 PHP 버전으로 묘사된다. 개발자가 핵으로 프로그래밍을 할 때 '그래듀얼 타이핑(gradual typing)'이라는 개념을 도입해, 동적 타이핑과 정적 타이핑을 모두 사용할 수 있다는 게 특징이다.

그래듀얼 타이핑은 학계에서 연구 활동의 일환으로 쓰여 왔는데, 다른 동료 2명과 몇년간 핵을 개발한 페이스북 엔지니어 브라이언 오설리번은 페이스북처럼 실제 산업에 몸담고 있는 조직이 이를 도입하려는 시도는 처음이라고 강조했다.

페이스북에 따르면 동적 타이핑 언어는 대규모 코드 기반이 존재하는 환경에서 오류 탐지율 저하를 감수하고 빠른 개발을 추구할 수 있다. 반면 정적 타이핑 언어는 빠른 재개발 비용을 희생하며 안정성 높은 결과물을 낼 수 있다. 페이스북 입장에선 2마리 토끼를 모두 잡아야 했다.

IT미디어 와이어드 보도에 따르면 페이스북은 이미 핵을 자사 웹사이트를 돌리기 위한 서버에 사용 중이다. 가입자 12억명을 보유한 페이스북 서비스가 이미 PHP 대신 새 프로그래밍 언어로 짜여진 코드 위에서 운영되고 있다는 얘기다.

브라이언 오설리번의 동료 개발자인 페이스북의 줄리앙 벨라주에(Julien Verlaguet)도 회사 공식 엔지니어링 블로그에 핵을 소개하며 지난해 우리는 거의 모든 PHP 코드 기반을 핵으로 전환했다며 일치단결된 도입 노력과 수많은 자체 개발 리팩토링 도구 덕분이라고 밝혔다.

페이스북이 핵을 도입한 이유는 대규모 서비스에서 잦은 코드 업데이트 요건을 맞추면서 오류를 최소화할 수 있는 프로그래머의 생산성을 향상시키기 위함이다.

벨라주에의 설명에 따르면 모든 PHP프로그래머들은 매일 까다롭거나 성가실 수 있는 일을 처리하는 데 익숙하다. 무효 객체를 호출하는 메소드를 써서 런타임 단계까지 가지 않으면 오류를 잡아낼 수 없는 건 흔한 실수다. 기술문서를 들여다보지 않으면 그 작동방식이나 의미를 이해할 수 없는 복잡한 API도 문제다.

PHP라는 언어에 근본적인 문제가 많다는 지적에도 이를 사용해 운영되는 웹애플리케이션과 서비스가 많은 까닭은 쉽고 빨라서였을 것이다. 하지만 그 서비스가 페이스북같은 규모로 커질 경우엔 심각해지는 모양이다. 페이스북은 엔지니어 수천명이 이틀에 한 번씩 새로운 코드를 짜내는 곳이기 때문이다.

서비스 규모가 커질수록 코드를 만들 때 실수를 최소화하고 미리 잡아내지 못한 오류에 빠르게 대응해 바로잡는 체계가 중시된다. 그래서 페이스북은 핵을 도입하기 전에도 간단한 언어를 사용해 '빠른 순환식 대응(quick feedback loop)' 체제를 갖췄다. 하지만 대규모 서비스에 필요한 개발 속도를 내기엔 불충분했다.

오설리번은 페이스북이 PHP 기반 개발환경의 문제점을 극복하기 위해 이미 도입한 새 프로그래밍 언어를 외부에 소개하는 동시에, 그 공식사이트를 통해 오픈소스로 배포한다고 밝혔다.

관련기사

페이스북은 창립 초기부터 PHP를 웹애플리케이션 주요 개발 언어로 채택했다. 시스템 확장에 필요한 성능 개선 작업의 일환으로 꾸준히 개발 언어에 변화를 추구해 왔다. PHP를 대신하도록 만들어진 핵도 그 연장선에 있다. 그간 투자해 온 PHP 기반 웹애플리케이션 개발 인프라를 버리지 않았다는 얘기다.

회사는 지난 2010년엔 PHP코드를 C++로 바꿔 실행 성능을 높이는 'PHP용 힙합(hiphop for php)' 기술을 도입했다. 2011년엔 PHP용 힙합이 적용된 개발환경에 개발 효율을 높이고 더 나은 실행 속도를 낼 수 있는 '힙합가상머신(HHVM)'을 만들었다. 이제 HHVM은 PHP코드뿐아니라 핵으로 짜여진 코드도 실행할 수 있다.