정보기술 ·
PHP 8.5, 혁신적인 파이프 연산자 도입으로 개발자 경험 대폭 개선
11월 출시 예정인 PHP 8.5, 오랜 기간 요구됐던 파이프 연산자(|>) 기능 탑재
[한국정보기술신문] 웹 개발 언어 PHP의 최신 버전인 PHP 8.5가 오는 11월 출시를 앞두고 있는 가운데, 이번 버전의 가장 주목받는 기능으로 파이프 연산자(|>)가 추가된다고 PHP 재단이 7월 11일 공식 발표했다. 이 기능은 수년간 개발자 커뮤니티에서 지속적으로 요청되어 온 것으로, 함수형 프로그래밍 패턴을 PHP에 도입하여 코드의 가독성과 유지보수성을 크게 향상시킬 것으로 기대된다.
파이프 연산자란 무엇인가
파이프 연산자(|>)는 왼쪽 값을 오른쪽 함수의 단일 인수로 전달하는 간단하지만 강력한 기능이다. 예를 들어 "Hello World" |> strlen(...)는 strlen("Hello World")와 완전히 동일한 결과를 제공한다. 하지만 이 연산자의 진정한 가치는 여러 함수를 연쇄적으로 호출할 때 나타난다.
파이프 연산자의 개념은 Unix/Linux 명령줄의 파이프(|) 기능에서 영감을 받았다. 왼쪽의 출력을 오른쪽의 입력으로 사용한다는 기본 원리는 동일하다. 이러한 설계는 1960년대 Doug McIlroy가 도입한 개념으로, 모듈형이고 조합 가능한 워크플로우를 가능하게 하는 강력한 프로그래밍 패턴의 기초가 되었다.
복잡한 중첩 함수 호출 문제 해결
기존 PHP에서는 여러 함수를 조합할 때 두 가지 방법이 있었다. 첫 번째는 array_values(array_unique(array_merge(...array_column($arr, 'tags'))))와 같은 복잡한 중첩 구조였고, 두 번째는 각 단계마다 임시 변수를 생성하는 방법이었다. 파이프 연산자를 사용하면 이를 $arr |> fn($x) => array_column($x, 'tags') |> fn($x) => array_merge(...$x) |> array_unique(...) |> array_values(...)와 같이 직관적으로 표현할 수 있다.
파이프 연산자는 함수형 프로그래밍 언어에서 널리 사용되는 개념이다. F#과 OCaml에서는 거의 동일한 연산자가 사용되며, Elixir에서는 약간 더 발전된 버전이 구현되어 있다. PHP 8.5의 파이프 연산자는 이러한 언어들과의 일관성을 유지하면서도 PHP만의 특색을 반영했다.
세 번의 도전 끝에 이룬 성과
PHP에 파이프 연산자를 도입하려는 시도는 이번이 세 번째다. 2016년 Sara Golemon이 Hack의 파이프 기능을 PHP로 이식하려 했지만 투표에 이르지 못했다. 2020-2021년에는 부분 함수 애플리케이션(PFA)과 함께 제안되었으나 엔진 복잡성 문제로 거부되었다. 이번 2025년 버전은 PHP 재단의 Ilija Tovilo와 Arnaud Le Blanc의 도움으로 마침내 성공했다.
파이프 연산자의 구현 자체는 비교적 간단하다. 본질적으로는 임시 변수 버전의 문법적 설탕(syntax sugar)에 불과하다. 하지만 다른 기능들과 조합될 때 그 진가를 발휘한다. 예를 들어 match() 블록 내에서 단일 표현식으로 복잡한 데이터 변환을 수행할 수 있게 된다.
파이프 연산자는 확장 함수(extension functions)와 유사한 기능을 제공한다. 이는 Kotlin과 C#에서 사용되는 기능으로, 객체의 메서드처럼 보이지만 실제로는 독립적인 함수인 형태다. PHP에서는 파이프 연산자를 통해 이러한 패턴의 75% 정도를 구현할 수 있다.
더 나아가 파이프 연산자는 함수형 프로그래밍의 고급 개념들도 구현할 수 있게 한다. 단일 함수로 "Maybe Monad"를 구현하여 null 값을 우아하게 처리할 수 있고, 파일 스트림 처리 같은 복잡한 작업도 체인으로 연결하여 처리할 수 있다.
향후 추가 기능 개발 계획
PHP 재단은 파이프 연산자와 함께 두 가지 추가 기능을 개발 중이다. 첫 번째는 부분 함수 애플리케이션(PFA)의 두 번째 시도로, PHP 8.5 또는 8.6에 포함될 예정이다. 두 번째는 함수 합성 연산자로, 함수들을 즉시 실행하는 대신 새로운 함수를 생성하는 기능이다. 이는 PHP 8.6에 포함될 것으로 예상된다.
개발자 커뮤니티는 이번 파이프 연산자 도입에 대해 매우 긍정적인 반응을 보이고 있다. 코드의 가독성이 크게 향상되고, 함수형 프로그래밍 패턴을 더 쉽게 사용할 수 있게 되었다는 평가다. 특히 복잡한 데이터 변환 작업에서 중첩된 함수 호출이나 임시 변수 없이도 직관적인 코드 작성이 가능해진 점이 높이 평가받고 있다.
PHP 8.5는 2025년 11월 20일 정식 출시될 예정이다. 개발자들은 7월 3일에 태그된 첫 번째 알파 릴리스를 통해 파이프 연산자를 미리 체험해볼 수 있다. PHP 재단은 개발자들에게 새로운 기능을 테스트하고 피드백을 제공해줄 것을 당부하고 있다.
한국정보기술신문 정보통신분과 송유찬 기자 news@kitpa.org