CWN(CHANGE WITH NEWS) - PHP를 통해 본 고차 함수의 모든 것

  • 맑음보령9.7℃
  • 구름많음김해시13.9℃
  • 맑음속초11.0℃
  • 맑음춘천6.3℃
  • 맑음세종11.7℃
  • 맑음철원10.8℃
  • 맑음광주13.1℃
  • 맑음영월8.6℃
  • 구름많음합천10.5℃
  • 구름많음대구11.5℃
  • 맑음홍성11.8℃
  • 구름많음양산시11.1℃
  • 맑음인제6.7℃
  • 맑음수원10.0℃
  • 맑음문경9.7℃
  • 맑음인천11.2℃
  • 맑음파주8.4℃
  • 맑음북춘천6.2℃
  • 맑음상주13.3℃
  • 구름많음울산12.9℃
  • 구름조금남해13.6℃
  • 맑음정읍11.2℃
  • 구름조금울릉도13.7℃
  • 맑음울진10.2℃
  • 구름조금목포13.4℃
  • 맑음금산12.2℃
  • 구름많음의령군8.0℃
  • 구름많음청송군6.2℃
  • 구름조금장흥9.1℃
  • 맑음강화8.8℃
  • 맑음정선군5.4℃
  • 맑음태백5.9℃
  • 구름많음밀양9.8℃
  • 맑음충주8.6℃
  • 구름많음북부산10.9℃
  • 맑음부안10.5℃
  • 구름많음창원12.8℃
  • 구름조금북강릉11.7℃
  • 맑음고창11.7℃
  • 맑음남원8.4℃
  • 맑음고창군10.3℃
  • 맑음제천6.3℃
  • 구름많음해남10.6℃
  • 맑음양평11.7℃
  • 구름많음성산12.4℃
  • 맑음홍천7.8℃
  • 구름많음통영13.8℃
  • 구름많음거제15.1℃
  • 구름많음진주10.5℃
  • 구름많음대관령7.1℃
  • 구름많음고산15.5℃
  • 구름많음영덕9.7℃
  • 구름많음포항13.3℃
  • 구름많음서귀포15.3℃
  • 맑음서청주10.1℃
  • 맑음영주6.6℃
  • 구름조금보성군10.8℃
  • 구름많음함양군8.8℃
  • 구름조금순천7.8℃
  • 구름많음경주시9.5℃
  • 구름조금광양시12.8℃
  • 맑음봉화3.8℃
  • 맑음동해11.0℃
  • 맑음보은8.2℃
  • 맑음원주12.5℃
  • 구름조금구미9.0℃
  • 맑음청주12.8℃
  • 구름조금순창군9.5℃
  • 구름많음거창9.3℃
  • 맑음이천11.0℃
  • 맑음천안11.3℃
  • 맑음부여7.9℃
  • 맑음서울11.6℃
  • 구름많음영천8.9℃
  • 구름많음산청9.4℃
  • 맑음장수7.0℃
  • 맑음군산12.4℃
  • 구름많음백령도10.6℃
  • 맑음대전12.4℃
  • 맑음안동9.5℃
  • 구름많음진도군10.1℃
  • 맑음영광군11.7℃
  • 맑음추풍령12.0℃
  • 구름많음고흥12.4℃
  • 구름많음여수13.6℃
  • 맑음서산8.4℃
  • 구름조금부산14.6℃
  • 맑음동두천10.0℃
  • 구름많음제주15.9℃
  • 구름조금의성6.8℃
  • 구름많음북창원14.2℃
  • 구름조금강진군13.2℃
  • 맑음강릉11.6℃
  • 맑음흑산도13.0℃
  • 구름많음완도14.1℃
  • 맑음임실8.4℃
  • 맑음전주12.3℃
  • 2025.11.24 (월)

PHP를 통해 본 고차 함수의 모든 것

오영주 / 기사승인 : 2021-12-14 19:59:25
  • -
  • +
  • 인쇄

자바스크립트(JavaScript), 자바(Java), 닷넷(.NET), 파이썬(Python), PHP 등 많은 프로그래밍 언어가 고차 함수에 대해 지원한다. 그렇다면 고차 함수는 무엇이며, 어떤 장점이 있을까? 프로그래밍 멘토, 작가, 시니어 풀 스택 개발자이자 The Coders Lexicon의 설립자인 팀 허드(Tim Hurd)는 고차 함수에 대해 다음과 같이 설명한다.

먼저 프로그래밍 언어는 변수를 처리하는 것처럼 함수를 처리하는 특성을 갖고 있다. 함수를 변수에 저장하고, 다른 함수에 변수로 전달하거나, 변수와 같은 함수에서 반환하고, 변수와 마찬가지로 배열이나 객체 속성과 같은 데이터 구조에 저장할 수도 있다. 요즘 대부분의 현대적 코딩 언어에는 이러한 기능이 있다.

이를 바탕으로 살펴보면, 고차 함수는 하나 이상의 함수를 입력으로 사용하거나, 함수를 출력으로 반환하는 함수 두 가지 중 하나만 구현할 수 있다. PHP의 경우, 함수가 고차라는 것을 분명히 보여주는 키워드가 있어 쉽게 식별할 수 있다.

호출 가능한 매개변수가 있는 함수 또는 메서드가 표시되면 함수를 입력으로 사용한다는 의미다. 또 다른 쉬운 신호는 함수가 해당 return명령문을 사용하여 함수를 반환하는 것을 보는 것이다. return 명령문은 함수의 이름일 수도 있고 익명/인라인 함수일 수도 있다.

그렇다면, 코드에서 고차 함수를 생성하면 어떤 점이 좋을까? 먼저 코드 유연성 부분을 들 수 있다. 고차 함수는 매우 유연해서 개별적으로 실행하는 코드를 작성할 필요 없이 서로 다른 기능의 전체 제품군을 가져와 사용하는 단일 기능을 작성할 수 있다.

또한 코드를 쉽게 확장할 수 있다. add()및 divide()가 있지만 나중에 sum()기능을 추가해야 한다고 가정했을때, sum()함수를 작성하고 변경할 필요 없이 고차 함수를 통해 파이프할 수 있다.

특히 PHP에서 고차 함수를 사용하면 Python의 데코레이터와 같은 동작을 시뮬레이션할 수 있다. 함수가 작동하는 방식을 수정하기 위해 다른 함수 안에 함수를 래핑한다. 예를 들어, 다른 함수를 곱하는 함수를 작성할 수 있으며, 함수를 받아서 타이머를 시작하고 함수를 호출한 다음 타이머를 종료해 얼마나 많은 시간이 경과했는지 확인하는 고차 함수를 작성할 수 있다.

마지막으로 고차 함수로 작업할 때는 인라인 익명 함수(일명 람다)를 사용하는 경우가 많다. 인라인 람다 버전은 고차 함수를 많이 사용하는 프레임워크에서 자주 볼 수 있으므로 이 형식을 미리 익혀두는 것이 필요하다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue