IT/php

· IT/php
PHP는 스크립트 언어로 인터프리터 컴파일러가 php 파일을 실행한다. Zend engine 기반으로 실행되며 처리 과정은 다음과 같다. (Zend engine은 PHP를 실행시키는 주체이며 여러 컴포넌트의 구성으로 이루어져 있다. 각 컴포넌트들은 php 파일을 토큰화, 파싱, 컴파일, 실행 등의 역할을 한다.)PHP 실행 과정토큰화(lexer) -> 파싱 -> AST -> opcode(컴파일러에 의해 변환됨) -> 실행 (Zend VM에 의해 실행됨)PHP7 이전엔 파싱 단계에서 opcode까지 생성하였지만, 이후엔 각 기능을 모듈화 (토큰화, 파싱, 컴파일) 하여 분리하였다. 모듈화의 장점복잡한 컴파일 과정을 작은 단계로 나눠 처리할 수 있음각 단계가 독립적이어서 유지보수와 디버깅이 쉬움최적화가 필..
· IT/php
DB 보다 더 높은 성능의 read/write 가 필요할때웹 서비스를 운영하다 보면 DB의 성능만으로는 부족한 순간이 찾아온다. 특히 실시간으로 빠른 응답이 필요하거나, 반복적으로 같은 데이터를 조회하는 경우에는 DB 대신 캐시를 활용하는 것이 좋은 선택이 될 수 있다.캐시로 활용할수 있는 in-memory DB 들과 apcu대표적인 in-memory DB로는 Redis와 Memcached가 있다. 이들은 독립적인 서버로 운영되며, 분산 환경에서도 잘 동작한다. 하지만 단일 서버 환경에서는 이러한 별도의 서버를 띄우는 것이 오히려 오버헤드가 될 수 있다. 이때 PHP에서 제공하는 apuc 를 고려해볼 수 있다.apcu 의 특징 및 장단점PHP 프로세스와 apcu의 관계PHP-FPM은 master proc..
· IT/php
PHP의 ?: vs ?? 연산자: 차이점과 사용법PHP에서 ?: (엘비스 연산자)와 ?? (Null 병합 연산자)는 비슷해 보이지만 중요한 차이가 있다. 두 연산자의 특징, 차이점, 그리고 적절한 사용 상황에 대해 알아보자.1. ?? (Null 병합 연산자)PHP 7.0에서 도입구문: $result = $a ?? $b동작: $a가 NULL이 아니면 $a를 반환$a가 NULL이면 $b를 반환특징: 오직 NULL 값에 대해서만 대체 값을 제공예시:$username = $_GET['user'] ?? 'Guest';이 코드는 $_GET['user']가 설정되지 않았거나 NULL일 때만 'Guest'를 사용.2. ?: (엘비스 연산자)PHP 5.3에서 도입구문: $result = $a ?: $b동작:$a가 tru..
· IT/php
협업을 하며 코딩을 할땐 유지보수가 용이하게끔, 코드파악이 쉽게끔 그리고 작성한 코드가 작성자의 의도대로 사용되는 것이 중요하다. 이번 글에서 다룰 내용은 작성한 코드를 동료들이 사용할때 작성자의 의도대로 사용할수 있게끔 유도하는 방법 이다. 간단히 코드를 작성하기위해 아래와 같은 상황이 있다고 가정해보자. 여러 API 클라이언트를 관리해야 하는 상황에서 헤더의 host, access_token 을 제외한 나머지 값들은 모두 공통이다. 그래서 여러 API 클라이언트의 기반이 되는 BaseApiClient.php 추상 클래스를 상속 받아 각 API 클라이언트를 구현한 상황. BaseApiClient.php abstract class BaseApiClient { protected const HOST = se..
· IT/php
Carbon 과 DateTime PHP 에선 시간 관련 작업시 Carbon 라이브러리를 주로 사용한다. 예전 javascript 의 moment 같은 존재이다 (참고로 현재 moment 는 deprecated 됨.) 그리고 Carbon 은 PHP 에서 제공해주는 시간 라이브러리 DateTime 을 활용하여 구현되어 있다. 이러한 이유로 DateTime 라이브러리 작동 메커니즘을 자연스럽게 따라갈수 밖에 없다. 그래서 이번 글에선 DateTime 작동 메커니즘중 하나를 소개 하려고 하고 이를 잘 알고 있어야 Carbon 사용중 뜻밖의 버그를 방지 할수 있을것이다. https://carbon.nesbot.com/docs/echo $dt->addMonths(60); // 2017-..
_이준호_
'IT/php' 카테고리의 글 목록