모던 PHP란 무엇인가? > 개발관련
개발관련

모던 PHP란 무엇인가?

조회 395회 댓글 0건
  • 현재 페이지 주소 복사
  • 페이스북으로 공유
  • X 로  공유
  • 트위터로  공유
  • 네이버 블로그로 공유
  • 네이버 카페 공유하기
  • 네이버 라인 공유하기
  • 네이버 밴드 공유하기
  • 링크드인으로 공유하기
  • 핀터레스트에 공유하기

모던 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 같은것 보면 아.... 부모찾아 잘못된 원인을 찾는데 그렇게 많은 시간을 쓸 필요가 있나

함수로 만들면 저런짓은 안할 텐데 ....



 

상속에 의한 재사용성도 함수로 만든것도 가능 합니다.

이걸 재사용성 이라고 하기엔 그렇지만 핵심은 기능확장이나 강화같은것을 하는 것으로 불가능 하지 않다는 것입니다.

기존함수명은 건드리지 않고 파라미터를 통해서 가능하지요. 파라미터 받은 것을 새로운 함수에 그대로 넘기는 방식으로 만들어도 되고

파라미터 타입을 보통 주지 않기 때문에 더 많은 파라미터는 배열로 받은 다음 파라미터가 배열이다 그렇다면 특정 연관배열명이 있는지 확인하고 조건 처리 하는 방식으로 얼마든지 가능 합니다.


설계라는 것은 어떤것이 있는지 알고는 범위내에서 확장도 하고 기획도 하고 그런것이기 때문에 항상 새로운 버전이 생기기 마련입니다.

미래에 어떤일이 일어날지 알면 설계 단계에서 넣겠지만 현실은 그렇지 않으니 그렇지요.

우리가 사용하는 윈도만 봐도 그렇듯이 주기적으로 처음부터 완전히 새로운 코드로 작성되어 성능을 높이는 방법을 선택 합니다.


그리고 상황에 따라 답이 달라지는 것이기 때문에 어떤것이 답이다라고 말하는 것은 아닙니다.

전 클래스만 사용하다가 함수위주로 사용하면 옷을 하나 입지 않은 느낌이 들던데요 캡슐화라고 하지요.

하지만 쉬운것을 어렵게 하지 말자 입니다.


  • 현재 페이지 주소 복사
  • 페이스북으로 공유
  • X 로  공유
  • 트위터로  공유
  • 네이버 블로그로 공유
  • 네이버 카페 공유하기
  • 네이버 라인 공유하기
  • 네이버 밴드 공유하기
  • 링크드인으로 공유하기
  • 핀터레스트에 공유하기
전체 241건 1 페이지
  • profile_image 맥미니에서는 Homebrew로 Apache(httpd) + PHP를 설치하는 방식이 가장 간단 한데 현재 Homebrew 기준 httpd는 Apache 2.4이고 php는 기본 설치 시 PHP 8.5 계열이 설치된다.당장은 PHP만 필요 하기 때문에 아래와 같이 PHP 설치리눅스를 레드햇 사용하느냐 맨드레이크냐 이런것 처럼 맥OS도 유닉스 계열이기 때문에 비슷한 환경이라 생각하고 사용하면 된다.몇가지 다른 부분이 있지만 유닉스 파생된 OS가 모두 조금씩 다른것 처럼 하고 생각하면 그만임. brew를 사용해 설치할 계획이기 때문에 설치가 안되었으면 먼저 설치 한다.whereis /bin/bashwhereis cu…
  • profile_image 맥미니에서 아래와 같이 쉽게 설치 하고 사용 할 수 있습니다.brew install tigger04/tap/superscale# 아래와 같이 하면 x2 형태가 파일명(input_x2.png)에 붙어 파일이 저장된다.superscale -s 2 input.png아래는 업스케일링 결과 입니다.단순히 이미지 키운것과 업스케링 한것과의 확연한 차이를 볼 수 있습니다. 
  • profile_image 보통 프로그래머라 하면 키보드를 붙잡고 알 수 없는 영문자를 빠르게 두드리는 사람을 떠올린다. 하지만 실제 개발 일은 그보다 건설 현장에 가까운데 무엇을 지을지 설계도를 그리고 철근으로 골격을 세우고 시멘트를 바르고 벽돌을 하나씩 쌓는 작업이다. 키보드는 마지막 순간의 연장 도구일 뿐이다. ▷ 일반인이 잘못 이해하고 있는 것들착각 1: 개발은 타자를 빨리 치는 능력이다실제로는 코드를 치는 시간보다 화면을 보며 고민하는 시간이 훨씬 길다. "어떻게 만들 것인가"를 먼저 설계하고 나서야 손이 움직인다.착각 2: 코딩 실력이 좋으면 좋은 프로그램이 나온다건물의 완성도는 벽돌치기 솜씨보다 설계도가 결…
  • profile_image 작은 몸체에 열이 많아서 외부 온도와 팬 속도를 모니터링 해서 맥미니 오래 사용하려고 모니터링 하기 위해서 하나 구입한 온습도계 입니다.우선 가을이 되면 괜찮은데 여름이 문제네요. 9,10월 ~ 4월까지는 확실히 괜찮지만 그외 시간은 열 관리에 특별히 더 신경을 써야 합니다.IDC 같은곳에 두는 경우는 산뜻한 환경이라서 이런 모니터링 하면서 시간을 버릴 필요는 없습니다.샤오미 미지아 블루투스 온습도계 2 = LYWSD03MMC라면 맥미니에서 직접 읽을 수 있습니다. 공식 사양상 Bluetooth 4.2 BLE 제품중요한 점은 macOS의 Bluetooth 설정에서 일반 기기처럼 페어링할 필요가 없다는 것입니다.…
  • profile_image 유닉스는 크게 AT&T 계열과 BSD 계열이 있고 BSD쪽이 성능이 더 좋은것으로 그래서 freeBSD 예전에 많이들 사용하고 그랬지만 그래도 리눅스보단 훨씬 덜사용 그런데 왜? 리눅스가 더 커졌을까?> 승부를 가른 건 성능 자체보다 라이선스, 타이밍, 드라이버, 배포판, 기업 지원, 클라우드 생태계macOS는 생각보다 Linux보다 FreeBSD/BSD 쪽과 혈통상 더 가깝고 명령은 리눅스 쓰던 사람은 그대로 사용 가능한것이 상당히 많다. 둘 다 Unix/POSIX 문화권에 있기 때문.난 지금까지 리눅스는 AT&T 기반으로 BSD가 섞인거라고 알고 있었는데 아니라고 하네요…
  • profile_image 웹루트 밖에 중요한 파일을 두면 안전하지만 관리측면에선 불편한 측이 있습니다. 웹서버 설정도 그렇고 하지만 초기 한번 설정 잘 하면 평생 잘 사용하는 방법 이기도 합니다.요즘 .env 파일 github에 올려서 이것만 찾는 봇이 있을 정도 라고 하지요.반드시 이 방식을 사용할 필요는 없는데 ... 작게 할일을 크게 하기도 하고. 정작 커졌을때는 그에 맞게 되어 있지 않고.오래된 방식인데 요즘 이렇게 안 하시는 분들 많은듯 싶습니다.웹서버를 통해서는 웹루트 밖에는 접근 자체가 안되는 방식이지만 백엔드 프로그램에선 접근해서 사용이 가능합니다.웹서버와 PHP 같은 백엔드 프로그램을 동일시 보시는분들이 있던데 전혀 다른 것입니…
  • profile_image CLI 프로그램 여러개를 테스트 하면서 공통으로 쓰이는 파일은 하나면 좋겠다는 생각이 들었습니다.이것 저것 수정하는데 몇 번은 괜찮은데 빠르제 지쳐가는 내 모습이 느껴 지면서 방법을 찾아 보았는데 대략 다음과 같습니다.- 최근 버전의 윈도우도 심볼릭 링크를 지원하기에 심볼릭 링크를 사용합니다.- 원격지와 공유가 가능하면 공유 디렉토리 지정해서 파일을 동시 사용- 에이전트에서 PHP의 include 처럼 포함시키는 명령이 있으면 그것 사용 ▷ 윈도우CMD에서의 구문 순서는 mklink [링크 경로] [원본 경로]mklink "C:\Path\To\GEMENI.md" "C:\Path\To\AGENTS.md"* 파워셀…

상업적 이용 금지. 컨텐츠는 개인 용도로만 사용이 가능 합니다.