포럼

xe도 폐북 따라가면 좋겠다는 생각이..흐흠..
----------------

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

페이스북이 '핵(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코드뿐아니라 핵으로 짜여진 코드도 실행할 수 있다. 

글쓴이 제목 최종 글
XE 공지 정치와 관련 되거나 욕설 포함된 컨텐츠 작성에 주의 부탁드립니다.  
BNU 공지 XE 이슈 등록은 Github 프로젝트를 이용해주세요. [13] 2016.07.15 by ZerglingGo
socialskyo 스케치북님은 참 여러모로 대단하신것 같습니다.  
고쇼 업글타일은 허브 같은거 없을까요? [1] 2014.03.26 by Luatic™
prologos 나눔바른고딕을 폰트로 사용하기에는 문제가 있네요 [1] file 2014.03.26 by HolyJohn
Planetis 묻고답하기 게시판에 이거 스팸인가요?; [1] 2014.03.26 by XE
DynamicLaser 혹시 XE에 backbone.js이용해서 개발해보신분 있나요?  
MVox 역시 세상에 쉬운 일은 하나도 없군요.. ㅎㅎ [1] 2014.03.27 by LI-NA
소영짜응 클라우드 서버 괜촨을까요? [6] 2014.03.27 by CTN
Pungs 무료호스팅 운영에 대하여..... [8] 2014.03.27 by Pungs
도라미 dnsever 유료화 [15] 2014.03.27 by 쿨럭이
또별 페북, PHP 대신할 핵 언어 공개 했다네요.  
xe_마니 사용자포럼인지 질답게시판인지 분간이 잘~ [8] 2014.03.27 by 용초딩
zolaist 한국어로만 입력해놓은 다국어 확장변수값이 영문페이지에서는 출력되지 않습니다 [1] 2014.03.27 by zolaist
숭숭군 검색어 프로그램? [12] 2014.03.28 by 착한악마
나의해 CPU가 계속 30%를 유지하는데여 ;; [1] 2014.03.28 by ToFinder
여우별다솜 XE로 포트폴리오사이트 운영해보신분계시나요? [5] 2014.03.28 by 여우별다솜
또별 페북, PHP 대신할 새 프로그래밍 [핵] 공개했데요. [10] 2014.03.28 by 또별
YJSoft ASP 게시판에 XE Board 스킨을 입혀 봤습니다. [2] file 2014.03.28 by 라미아스튜디오
갤럭시s5 이거 크롤링 잘 되고있는거 맞나요? [4] file 2014.03.29 by 갤럭시s5
곰탕lol왕자 모바일 레이아웃 쓰실때 궁금한점 [2] 2014.03.29 by LI-NA
W.O 레이아웃 설정에 대한 제안 [7] 2014.03.29 by W.O