본문 바로가기
프로그램개발/ServerSide(PHP,Node.js)

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

by 크레도스 2014. 3. 21.

 

페이스북이 더 빠르고 오류를 미리 잡을 수 있는 새로운 프로그래밍 언어 ‘핵(Hack)’을 오픈소스로 내놓았다. 페이스북은 핵 홈페이지에서 핵 언어 사용법과 관련 사례 제공한다.

hack_main

페이북이 개발한 핵은 기존 PHP 언어를 기반으로 기능을 추가한 프로그래밍 언어다. 페이스북은 웹서버를 PHP 기반으로 구축했다. 읽고 쓰기 쉬우며 데이터베이스와 자료를 빠르게 처리하는 PHP의 장점을 십분 활용하기 위해서다. PHP는 오픈소스 언어이므로, 이를 기반으로 만든 핵도 자연스레 오픈소스로 공개하게 됐다.

핵의 장점은 프로그래밍 테스트 시간을 줄여주는 데 있다. PHP 개발자는 웹브라우저와 코드를 계속 번걸아 가면서 테스트를 하곤 했는데, 핵은 테스트에 앞서 오류를 잡을 수 있게 도와준다. 여기엔 정적 타입과 동적 타입을 동시에 사용하면서 확인할 수 있는 그래듀얼 타이핑 개념을 사용했다. 정적 타입으로 코드를 쓰면 프로그래밍 작성 중 오류를 미리 확인할 수 있수 있는 장점이 있고, 동적 타입은 개발속도를 빠르게 해주는 장점을 지녔다. 핵은 2가지 장점을 동시에 수용해 개발자 수고를 덜어준다.

hack_type_01

▲기존 PHP 언어 코드

hack_type_02_Resized

▲핵 언어 코드.  오류난 부분을 빨간 밑줄로 자동 표시해 준다.

람다식이나 제네릭 기능도 들어갔다. 람다식은 읽기 쉬운 수학 함수를 쓸 수 있는 기능이며, 제네릭은 코드 안에 들어갈 내용을 미리 요약해서 표시해주는 방법이다. 이런 식으로 핵은 전체적으로 프로그래머가 코드를 한눈에 읽기 쉽고 오류를 줄일 수 있게 돕는다. 방대한 프로그래밍 코드를 쓰는 페이스북으로선 유용한 언어가 될 수 있다.

hack_lambda

▲람다식 사용 예

hack_generirs

▲제네릭 사용 예

페이스북은 2010년에도 HHVM(HipHop VM For PHP)라는 가상머신을 오픈소스로 공개해 PHP 속도를 향상시켰다. 핵은 HHVM와도 궁합이 잘 맞도록 지원하고, PHP 언어 호환성도 더 높일 예정이다 4월9일에는 핵 개발자의 날 행사를 열어 핵 언어 사용법이나 PHP 코드를 핵 코드로 변환하는 방법도 공유할 예정이다.