블로그 방명록 사전 갤러리 게시판 인클봇 인클챗 웹 IRC 위즈 인클플
(동접: 0명/0명) [?]
 


페이스북이 PHP 코드를 네이티브 바이너리로 바꾸는 컴파일러, '힙합'을 출시했습니다. 힙합은 오픈 소스 PHP 라이선스로 공개됩니다.

PHP 컴파일러 '힙합' 로고

PHP는 스크립트 언어이기 때문에 컴파일드 언어에 비해 수십 배 가량 느립니다. 그럼에도 스크립트 언어를 사용하는 이유는 개발 편의성과 비용 면에서 뛰어나기 때문이죠. 페이스북은 이 문제로 고민을 많이 했나 봅니다. 지난 2007년부터 여러 가지 방법을 시도해봤다는군요.

페이스북을 자바나 C# 같은 빠른 언어로 다시 만드는 것이 가장 보편적인 방법이지만, 사이트의 복잡도와 개발 속도 때문에 극복하는 데 시간이 걸릴 것으로 보았습니다. PHP의 젠드 엔진을 개조하고 패치를 보내기도 했지만, 필요한 만큼의 성능 향상을 이룰 수 없었습니다. 힙합은 이러한 문제를 해결하기 위해 페이스북이 꺼낸 카드입니다.

PHP 컴파일러 '힙합' 변환 과정

힙합은 PHP 코드를 C++ 코드로 바꿔주는 코드 변환기입니다. 변환된 코드는 C++ 컴파일러(g++)를 이용하여 네이티브 바이너리가 되죠. 즉, 중간 언어로 C++를 사용하는 컴파일러입니다. 이렇게 되면 PHP 코드를 PHP 인터프리터가 해석할 필요가 없어지기 때문에 빨라지죠.

이를 위해 힙합은 PHP와 C++의 간격을 줄이는 것을 목표로 합니다. PHP는 동적 타입 언어고, C++는 정적 타입 언어이기 때문이죠. 또한 프로그래머가 '쓸 법한' 코드를 C++로 그대로 옮김으로써 성능 향상을 꾀한다고 합니다. 예를 들어, if (...) {...} else {...} 를 쓰는 사람이 function foo($x) { include $x; } 를 쓰는 사람보다 훨씬 많은 것처럼요. 그래서 가능하면 함수와 변수에 대해 정적 바인딩을 사용합니다. 이를 위해 타입 추론도 쓰고요. 자주 안 쓰는 몇몇 기능은 희생되기도 하는데, eval()이 그렇습니다. 이건 PHP 인터프리터 없이 정적으로 결과를 내놓기가 매우 어렵지요.

페이스북에 따르면, 힙합의 최대 장점은 매우 투명하다는 것입니다. 즉 PHP를 기반으로 한 기존 개발 방식을 바꿀 필요가 없습니다. 또한 실험실에서만 머무는 프로젝트도 아니고, 이미 실제 산업에서 쓰이고 있습니다. 페이스북은 이미 6개월 전부터 상용 서버에 힙합을 적용했다고 합니다. 현재 페이스북 트래픽의 90% 이상을 힙합을 통해 제공하고 있다는군요.

힙합은 또한 웹 서버이기도 합니다. 아파치는 훌륭한 웹 서버지만, 아파치가 제공하는 모든 기능이 필요한 것은 아니라서 자체적으로 웹 서버를 만들었다는군요. 아쉽게도 힙합은 아직 아파치에서 돌아가지는 않는 것 같습니다. 하지만 힙합이 아파치에서 돌아가게 하는 오픈 소스 프로젝트가 생기기를 바란다는군요.

가장 기쁜 것은 이 모든 것이 오픈 소스 프로젝트라는 것입니다. 깃허브(GitHub)에 소스 코드가 올라올 예정이고, 위키메일링 리스트도 개설되었습니다. 아직 힙합이 기존 코드와 얼마나 호환성이 있는지, 속도 향상은 정확히 어느 정도인지 모르지만, 큰 무리가 없다면 바로슬닷컴에도 도입하고 싶군요.

Posted by 랜덤여신

2010/02/04 13:20 2010/02/04 13:20

Trackback URL : http://barosl.com/blog/trackback/854

Trackbacks List

  1. 맹수의 생각

    Tracked from anarch's me2DAY 2010/02/04 14:20 Delete

    페이스북, PHP 컴파일러 '힙합' 출시 - 오픈 소스로 공개 :: 랜덤여신의 폐인모드

  2. pcpenpal의 생각

    Tracked from pcpenpal's me2DAY 2010/02/04 16:29 Delete

    '엄밀히' 말하자면 그게 바로 컴파일러. 한 언어로 쓰인 프로그램을 다른 언어로 번역하는 것. 다만 안 엄밀하게, 평소엔 '다른 언어'가 x86 Instruction이 되는 것이다보니… 뭐 그런거죠.

Comments List

  1. beoreoji 2010/02/05 18:19 # M/D Reply Permalink

    멋진 소식이네요~,,
    잘 보고 갑니다.

Leave a comment
« Previous : 1 : ... 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : ... 804 : Next »

블로그 이미지

랜덤여신이 살아가는 이야기입니다. / 국내 점유율이 1%도 안 되는 리눅스 관련 글을 주로 씁니다. 관심 좀... ㅠㅠ / 컴퓨터쪽 이야기도 씁니다.

- 랜덤여신

Archives

Recent Posts

  1. 안드로이드 시장 점유율, 빠르게 상승 ... (2)
  2. OpenSSH 5.4 출시 - SSH1 비활성화
  3. 아이폰 개발자 프로그램, 약관 전문 폭로 (5)
  4. 스팀 및 밸브 게임, 맥 지원 시작 (1)
  5. 유비소프트, 인증 서버 다운으로 게임 ... (3)
  6. MS, 윈도 폰과 엑스박스 동시 지원 게...
  7. MS, IE6 장례식에 조화 보내 (2)
  8. 북한 리눅스 배포판 '붉은 별' (4)
  9. 우분투, 새 디자인 공개 - '빛' 테마 (7)
  10. 미국 토피카 시, '구글 시'로 이름 변경 (4)
  11. 애플, 아이폰 특허 침해로 HTC 고소 - ... (7)
  12. PS3 구형, 달력 버그로 게임 실행 불가능 (2)
  13. EU, 구글 스트리트 뷰에 사생활 침해 경고
  14. 2ch 공격이 무의미한 이유 (61)
  15. 동영상 포맷 화질 비교 - H.264, Ogg T... (7)
  16. 아이튠즈 스토어, 음악 다운로드 100억...
  17. 고 대디, 암호화 없이 비밀번호 저장하... (2)
  18. 페도라 쓴다고 말해! (7)
  19. 유튜브, 3월 13일에 IE6 지원 중단 (2)
  20. 애플, 앱 스토어에서 성인 앱 6000개 제거 (3)
  21. 구글 기어스, HTML5로 대체
  22. 모바일 리눅스에는 인라이튼먼트가 제격? (2)
  23. MS, 유럽 윈도에 '웹 브라우저 선택' ... (10)
  24. 파이어폭스 부가 기능 사이트 차단과 S... (13)
  25. SKT 주최 '안드로이드 개발자 컨퍼런스... (2)
  26. 구글, 위키미디어 재단에 200만 달러 기부 (5)
  27. 오픈 소스 모델은 정말 효율적인가? MS... (10)
  28. 노키아와 인텔, 모바일 플랫폼 '미고' ... (1)
  29. 아이작 아시모프의 '파운데이션', 3D ... (2)
  30. 아이폰용 오페라 미니 발표 - 앱 스토... (7)