PHP를 바라보는 관점을 바꿔보자

PHP는 다른 프로그래밍 언어와 달리 도구(Tool)로서 만들어졌다 프로그래밍 언어로 발달한 특이한 경우이기 때문에 PHP를 다른 프로그래밍 언어의 시각에서 바라보면 이해하기 힘든 측면이 많다. PHP가 어떤 관점에서 문제를 해결하기 위한 방법을 제공하는지는 초기의 PHP인 PHP/FI 소스 코드를 살펴보면 알 수 있다. ...

2월 25, 2014 · 2 분 · Sangheon Han

슬림(Slim): 마이크로 프레임워크

프레임워크 전성 시대다. 서버 사이드 웹 개발 언어마다 프레임워크가 넘쳐난다. 프레임워크를 통해 통일성을 만들어 내고 보다 빠르고 편리하게 웹 개발을 하려는 시도가 한창이다. 하지만 과유불급이란 말처럼 이런 시도가 지나쳐 오히려 프레임워크를 배우는데 학습 비용이 너무 들어간다던지, 기능이 많아지면서 프레임워크 자체가 무거워져 실행 속도가 느려진다던지 하는 문제가 나타나고 있다. ...

2월 6, 2014 · 2 분 · Sangheon Han

진화하는 PHP

초기의 PHP는 프로그래밍 언어가 아니었다. 그건 마치 AutoHotkey 같은 것을 프로그래밍 언어라고 부르지 않는 것과 마찬가지다. PHP(Personal Home Page)라는 이름에서 알 수 있듯 개인 홈페이지를 만들기 위한 도구(Tool)였다. ...

2월 4, 2014 · 2 분 · Sangheon Han

PHP 내부 동작 들여다보기

gcc 컴파일러는 -S 옵션을 이용해 어셈블리어로 실제 C 언어의 내부 동작을 살펴 볼 수 있다. 하지만 PHP는 기본적으로 그러한 기능이 없으나, pthreads 모듈을 만든 Joe Watkins가 만든 explain이라는 모듈을 통해 어느 정도 PHP 내부 동작을 파악 할 수 있게 됐다. ...

11월 13, 2013 · 2 분 · Sangheon Han

우분투에 PhpStorm 설치하기

윈도우나 맥과 달리 우분투(Ubuntu)에 PhpStorm을 사용하기 위해서는 몇가지 작업을 해주어야 한다. 우선 PhpStorm은 OpenJDK를 지원하지 않기 때문에 오라클 JDK를 설치해야 한다. ...

10월 17, 2013 · 1 분 · Sangheon Han

PHP는 정말 배울 가치가 없을까?

주류 언어 중 PHP만큼 비판받는 언어도 없다. PHP에 대한 비판이 지나치다 못 해 인신공격까지 서슴치 않는 경우도 있다. 오늘도 가루가 되도록 까이는 PHP를 위해 해명을 곁드린 PHP의 효용 가치에 대한 내 생각을 이야기 해보려고 한다. ...

4월 7, 2013 · 5 분 · Sangheon Han

월의 몇 주차인지 계산하기

평소 크게 신경을 쓰던 문제는 아닌데 이번에 관련 작업을 하면서 이게 간단한 문제는 아니라는 것을 알게 됐다. 이 문제가 어려운 이유는 그 해의 몇 주차인지에 대해서는 ISO 표준이 있는데, 월의 몇 주차인지에 대해서는 표준이 없기 때문이다. 아마 표준이 있었으면 이미 날짜 관련 함수 중에 있었을 것이다. ...

1월 3, 2013 · 3 분 · Sangheon Han

PHP: 분석에 유용한 도구들

정적 분석 php-sat php-ast PHP Depend PHP CodeSniffer PHP Parser Online PHP lint PHPLint phpCallGraph PHP Mess Detector phc 디버거 Xdebug 문서화 phpdoc doxygen 프로파일러 xhprof

12월 23, 2012 · 1 분 · Sangheon Han

보다 빠른 echo를 위하여

PHP 언어에서 print 보다 echo가 빠르다는 것은 널리 알려진 사실이다. 이런 차이는 print의 경우 반환값이 존재하기 때문인데, 물론 이런 반환값 때문에 수식 내에서 사용 할 수 있다는 장점도 있다. 예를 들어 $result = ($n > 1) ? $n : print $n;처럼 쓸 수 있다. ...

12월 1, 2012 · 2 분 · Sangheon Han

PHP: 클래스 매직메소드 __get(), __set() 문제

매직메소드 __get, __set에 대해서는 크게 두가지 의견이 있는데, 하나는 OO를 해치기 때문에 getter, setter를 정의해서 사용하라는 것이고, 또다른 하나는 스크립트 언어의 특성이므로 적극 활용을 해야 한다는 것이다. ...

11월 26, 2012 · 3 분 · Sangheon Han