모던 PHP란 무엇인가?
모던 PHP는?
일반적으로 PHP 5.3(2009년) 이후를 가리키는데 이 버전부터 네임스페이스, 클로저, 늦은 정적 바인딩 등 현대적인 기능이 도입되면서 객체지향 프로그래밍과 함수형 프로그래밍 요소가 강화되었습니다.
특히 PHP 7.0(2015년)부터는 성능 개선(Zend Engine 3.0)과 새로운 기능(타입 선언, null 병합 연산자 등)이 추가되어 모던 PHP의 기준으로 자주 언급 되고 최신 PHP 8.0(2020년) 이상으로, JIT, 유니온 타입, 속성(properties) 등 고급 기능이 포함됩니다.
- PHP 5.3 (2009년): 모던 PHP의 시작점.
- PHP 7.0 (2015년): 성능과 기능 면에서 큰 도약.
- PHP 8.0+ (2020년~): 현재 모던 PHP의 표준.
그리고 PHP로 시작한 페이스북은 JIT를 사용하지 않은 PHP7고의 성능대결?이 있었고 지금은 다른길을 가고 있습니다.
이 때문인일까요? PHP는 6버전이 없는데... 찾아보니 페북의 Hack과의 경쟁 문제는 아니라고 합니다.
더 이상 페이스북(현 메타) HHVM에서 PHP는 지원하지 아니하는 것으로 알려져 있습니다.
쓰다보니 약간 관계 없을 것을 쓰게 되었는데 통상 범용적인 언어를 가지고 본인 회사에 맞게 쓸데 없는 것은 버리고 꼭 필요한것만 넣고 기능 추가 하고 그렇게 발전해 가면 범용적인 언어보다 속도가 떨어지는것이 이상한 일일것입니다. 흔히 사용하는 윈도우만 봐도 커스텀할때 쓸데 없는것 올라오지 못하도록 막는것 부터 시작하는데 가장 쉬운 자원절약이죠
쉽게 말하면 요즘에 새로나온 기능으로 PHP 프로그램 하고 있냐 라고 말하는 것입니다.
그런데 말입니다. 요즘 새로나온 라이브러리가 이것을 사용하기 때문에 안한다고 말 하기도 그런것이 사용방법을 보면 그렇게 써야 하기 때문에 쓰기 마련입니다.
클래스만으로 만든 패키지나 CMS 같은것 보면 아.... 부모찾아 잘못된 원인을 찾는데 그렇게 많은 시간을 쓸 필요가 있나
함수로 만들면 저런짓은 안할 텐데 ....
상속에 의한 재사용성도 함수로 만든것도 가능 합니다.
이걸 재사용성 이라고 하기엔 그렇지만 핵심은 기능확장이나 강화같은것을 하는 것으로 불가능 하지 않다는 것입니다.
기존함수명은 건드리지 않고 파라미터를 통해서 가능하지요. 파라미터 받은 것을 새로운 함수에 그대로 넘기는 방식으로 만들어도 되고
파라미터 타입을 보통 주지 않기 때문에 더 많은 파라미터는 배열로 받은 다음 파라미터가 배열이다 그렇다면 특정 연관배열명이 있는지 확인하고 조건 처리 하는 방식으로 얼마든지 가능 합니다.
설계라는 것은 어떤것이 있는지 알고는 범위내에서 확장도 하고 기획도 하고 그런것이기 때문에 항상 새로운 버전이 생기기 마련입니다.
미래에 어떤일이 일어날지 알면 설계 단계에서 넣겠지만 현실은 그렇지 않으니 그렇지요.
우리가 사용하는 윈도만 봐도 그렇듯이 주기적으로 처음부터 완전히 새로운 코드로 작성되어 성능을 높이는 방법을 선택 합니다.
그리고 상황에 따라 답이 달라지는 것이기 때문에 어떤것이 답이다라고 말하는 것은 아닙니다.
전 클래스만 사용하다가 함수위주로 사용하면 옷을 하나 입지 않은 느낌이 들던데요 캡슐화라고 하지요.
하지만 쉬운것을 어렵게 하지 말자 입니다.
