php

    PHP 언어를 공부하기 위한 자료 및 문서 정리

    PHP 해당 포스팅은 PHP 카테고리의 목차를 정리하기 위해 작성되었습니다. 물론 카테고리에서 볼 수 있겠지만, 주제별로 나눠 놓으면 조금 더 좋을 것 같았습니다. PHP를 사랑하는 개발자로서 PHP 7+ 로 구성된 PHP 공식 매뉴얼은 내용이 썩 알차지 못하기 때문에 글을 작성하게 되었습니다. 기본 매뉴얼이 영문인 것도 어렵게 하지만, 한글버전이 정상적으로 갱신이 되어있지 않습니다. 이 글은 현재 PHP 7.4 를 기준으로 합니다. 5년 만에 찾아 온―, PHP 8 PHP: PHP 8 기능 정리 및 요약 PHP: PHP 8 기능 정리 및 요약 PHP 8 2015년 php7 이 등장한 이후 5년만에 php8 이 시동을 걸었다. 아직 베타 버전이지만, 2020년 11월 26일에 정식으로 8.0 버전이 릴리..

    PHP: declare

    Declare declare 는 언어구조이며 특정 지시어를 코드 블록에서 실행하기 위해 사용한다. 이 기능은 나도 거의 사용한 적 없지만, 가끔 본적이 있어서 적어보기로 했다. 기본적으로 지원하는 지시어는 총 세가지이며, ticks, encoding, strict_types 정도가 있다. 여기서 제일 중요도가 높다고 여겨지는 것은 아무래도 strict_types 지시어라고 볼 수 있는데, 이것을 사용하면 코드가 조금 더 단단해지기 때문이다. ticks PHP 코드 분석기가 코드를 해석할 때 로우 레벨에서 틱을 발생시킬 수 있는 구문에 대해 이벤트를 발생시키는데, 그것이 tick 이라고 볼 수 있다. 틱은 시스템 명령어가 아니라 실제 코드 상의 명령어에 따라 발생하므로 실제 코드에서 명령이 얼마나 일어날지..

    PHP: Interpreter, OPCache, ― JIT

    이번 시간에는 기존의 포스팅과는 깊이에서 차이가 있다. PHP 를 문법을 넘어 그 너머 살펴보고 코드가 해석되고 실행되는 과정을 살펴본다. 이를 고차원의 관점에서 볼 것이며 그러한 과정이 어떻게 구현되었지까지는 들어가지 않는다. 하지만, PHP 를 사용하는 개발자라면 알아두어야 할 사항을 살펴보도록 하자. 이 부분은 꽤나 중요한 부분이다. 고수준의 언어를 기계어로 바꾸기 가장 기본적인 부분부터 시작해보자. 일반적으로 우리가 사용하는 언어, 한국어, 영어와 같은 고수준의 언어를 컴퓨터는 바로 이해하지 못한다. 따라서 우리는 컴퓨터가 알아먹을 수 있는 기계어로 바꿔야 하는데, 그러한 기계어로 바꿔주기한 해석기로는 컴파일러와 인터프리터가 있다. 컴파일러 C, C++, Go, Rust 와 같은 언어는 컴파일러를..

    PHP: Thread Safe vs Non Thread Safe

    PHP for Windows 여기서 유독 PHP for Windows 버전에서는 Thread Safe, Non Thread Safe 로 나뉘는데 두 개는 어떠한 차이가 있는지 잠깐 살펴보기로 하자. 스레드는 프로세스 내부에서 동작하는 개별 로직이라고 생각하자. 사실 이건 PHP for Windows 의 사이드에서 친절하게 일부 설명이 들어있다. NTS(Non Thread Safe) PHP 는 기본적으로 멀티 프로세스 방식으로 처리하는데, PHP 를 CGI 방식으로 사용하게되면 요청마다 프로세스를 생성하는 방식을 취하게 된다. FastCGI 를 사용하면 PHP-FPM(PHP FastCGI Process Menager)가 어련히 알아서 요청을 처리해주므로 괜찮긴 하지만. 어찌되었든 일단 다중 스레드를 사용하..

    PHP: PHP 8 기능 정리 및 요약

    PHP 8 2015년 php7 이 등장한 이후 5년만에 php8 이 시동을 걸었다. 아직 베타 버전이지만, 2020년 11월 26일에 정식으로 8.0 버전이 릴리즈 되었으며, 기능은 확정되었고 문법적으로 큰 변화가 있었다. 페이스북의 HHVM(Hiphop Virtual Machine)이 그랬던 것 처럼 JIT(Just In Time) 컴파일러를 도입하여 속도는 크게 향상되었다. 물론 HHVM 보다도 속도는 이미 PHP 7.x 에서 넘어섰기 때문에 이 둘에 대한 비교는 하지 않아도 된다. 이 포스트에서는 대체로 문법적인 부분들을 살펴본다. https://www.php.net/releases/8.0/en.php PHP: PHP 8.0.0 Release Announcement PHP 8.0 is a major..