90호. PHP 7.4 FFI free

2019-12-09

안녕하세요. 오늘이 아마 PHP 7.4 새 기능을 소개하는 마지막 시간이 될 것 같은데요. 마지막 주제는 바로 FFI(Foreign Function Interface) 입니다.


FFI는 외부 라이브러리를 PHP 코드로 불러들이는 PHP 익스텐션입니다. C로 PHP 익스텐션을 작성하지 않고 바로 C, Go, Rust 등의 쉐어드 라이브러리(.so, .dll)를 PHP에서 사용할 수 있습니다.


PHP의 한계를 넘어서는 다양한 작업이 가능해질 것 같습니다. 애플리케이션에서 더 강력한 성능이 필요한 코드를 다른 언어로 대체할 수 있겠고, 예를 들어 TensorFlow to PHP 같이 텐서플로우를 PHP에서 사용하려는 시도 같은 것들이 이뤄지고 있습니다. Awesome PHP FFI에는 몇몇 PHP FFI 활용 사례가 수집되어 있습니다.


PHP 공식 홈페이지를 보면 아직은 실험적인 단계이므로 매우 주의해서 사용하라고 경고하고 있습니다. 함수명이나 동작도 별도의 안내 없이 바뀔 가능성도 있다고 하네요. 그리고 FFI는 시스템의 아주 깊숙한 곳까지 제어할 수 있기 때문에 위험하니 C나 C API를 사용하는 것에 숙련된 사용자만 사용하라고 합니다.


또한 현재는 속도도 기대하는 것만큼 나오지 않는 상황이라, 속도 향상을 목적으로 FFI를 사용하는 건 맞지 않는다고 합니다.


여러모로 현재 당장 사용하기엔 시기상조인 기술인 것 같아요. 그리고 사실 제가 C나 다른 언어를 잘 모르는 쪼렙이라서, FFI 사용 방법을 자세하게 안내해드리는 데는 한계가 있기도 합니다. 적당한 시기에 훨씬 잘 아는 분을 모셔서 FFI에 대해 소개하는 기회를 마련하겠습니다.


1일 1식 라라벨 90호

2019년 12월 9일


이현석

바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.