이호진의 PHP 시리즈 : 넘버쓰리


넘버쓰리 PHP
프로그램 언어가 발전하고 대중화되기 위해서는 몇가지 요소들이 필요로 합니다. 먼저 사용자층이 많아야 하고, 다양한 응용 함수들이 폭넓게 존재를 해야 합니다. 프로그램의 언어구조 처리가 아무리 좋아도 관련 기본 함수들이 많지 않다면 확산 속도는 그 오래 걸릴 것입니다. 또한 기본 함수들을 통하여 다양한 응용 라이브러리가 만들어지고 프로그램 언어들은 더욱더 힘을 받게 되고 많은 사랑을 받을 것입니다.

이세상의 코드들은 여러 사람들의 기여와 공여로 유기적인 시스템으로 동작을 합니다. 프로그램을 개발하면서 A~Z까모 모두 하나 하나를 일일이 만들어 사용을 하기에는 너무나 많은 시간이 필요로 합니다. 대부분의 개발자들은 새로운 기능들을 만들어 내는 것 보다는 기존의 만들어 놓은 기본함수, 라이브러리를 이용하여 새로운 서비스를 만들어 내는 것에 많은 시간을 투자합니다.

PHP는 빠르게 응용프로그램을 개발을 할 수 있도록 다양한 기본 함수들을 제공합니다. 이렇게 기초적인 동작들을 하는 함수들을 제공하는 것은 프로그램 언어들이 순수한 문법만 가지고는 모두 동작을 할 수 없기 때문입니다. 심지어 화면에 “hello world!” 글자를 출력하는 것도 기본함수가 필요로 합니다. 초보자일수록 언어에서 제공하는 기본함수들을 학습하고 습득을 하는 것은 중요합니다. 기본함수들을 많이 알수록 응용프로그램을 만들어 내는 속도와 코드들은 간결해 질것입니다.

PHP는 C언어로 개발된 인터프리터 언어로 C언어의 내장함수들과 상당부분 유사한 부분들이 많이 있습니다. 또한, 많은 시간동안 웹서비스 용도로 응용이 되면서 다양한 추가 함수들을 가지게도 되었습니다. 이러한 유사한 함수들과 기능들은 기존에 작성된 코드들을 포팅하여 개발을 하는데도 상당한 도움이 됩니다.

책의 후반부에는 PHP의 라이브러리의 바다라고 할 수 있는 컴포저 및 페키지에 대해서 간략하게 소개합니다. 컴포저를 통하면 전세계의 수많은 개발자들이 만들어 놓은 페키지 라이브러리를 다운도드 받아 사용이 가능합니다. 또한, 여러 종류의 PHP 프레임워크등도 다운로드 받아 사용을 할 수 있습니다. 또는, 자신이 만들어 놓은 라이브러리나 소스등을 배포할 수도 있습니다.

이처럼 개발을 위한 기본함수들을 튼튼하게 학습을 함께하는 것은 매우 중요합니다. 필자는 1권과 더불어 PHP의 기본함수들을 체계적으로 함께 학습을 하기 위해서 별도의 3권을 같이 집필하였습니다. PHP의 전반적인 내부함수들을 살펴보고 응용서비스를 개발하는데 도움되는 함수들을 설명하고자 합니다.

대상독자


3권은 1권 문법에서 설명하지 못한 부분들을 추가적으로 다시 설명을 합니다. PHP는 20년 이상의 세월과 수많은 개발자들의 기여를 통하여 발전된 고급 웹언어 입니다. 그 많큼 설명할 부분도 많고, 관련 기술들 또한 방대합니다. 1권에서는 지면 관계상 다양한 함수를 통하여 응용하여 설명하지 못한 부분들을 예제들로 통하여 좀더 응용이 가능하도록 하였습니다.

또한 PHP를 학습하면서 지루하지 않도록 1권의 내용과 별도로 분리하여, 내장된 함수들과 응용방법에 대해서 3권으로 집필이 되었습니다. 전체적인 함수들의 종류와 컨셉, 실습을 위하여 간략하게 정리하였습니다.

사전학습:

3권을 학습하기 위해서는 먼저 1권의 기본 문법이 사전 학습되어야 합니다. 3권은 PHP의 내장된 함수들과 응용 방법에 대해서 설명을 하기 때문입니다. 따라서 PHP의 기본적인 문법과 구조를 사전에 잘 습득이 되어 있어야 합니다. 1권 문법을 같이 옆에 두고 함께 학습을 하는 것도 좋은 방법일 것입니다.


프로젝트 준비:

본격적인 프로젝트 개발을 시작하기에 앞서 다양한 PHP의 내장된 함수들을 학습합니다. 내장된 함수들을 학습하는 것은 프로젝트를 개발할 때 PHP의 제공된 함수를 통하여 빠르게 코드를 작성하기 위함 입니다. 또한 향후 개발될 제품의 코딩 시간을 줄여주는 효과를 가지고 옵니다.

내장된 함수들을 학습하는 것은 자신이 구현하고자 하는 기능의 개발 범위를 알기에 도움이 될 것입니다. 기존 함수들을 이용하여 프로젝트를 구성을 해야 할지, 또는 새로운 추가 기능을 구현하는 로직을 만들어 내야 할지를 판별할 수 있습니다.



코드분석:

PHP에서 제공하는 내장된 함수들을 많이 아는 것은 다른 사람들의 코드를 분석할 때도 매우 도움이 됩니다. 예를 들어 기초 라이브러리와 같은 코드들은 직접 만들어 내는 함수보다는 기존함수들을 이용하여 새롭게 생성된 함수나 클래스 등이 대부분 입니다. 해당 코드들이 어떻게 동작을 하고, 새로 만들어진 함수인지를 판별할 수 있습니다.


책의방향


내장 함수들:

PHP의 응용함수들은 www.php.net 공식사이트를 방문하면 수많은 함수들의 동작 매뉴얼을 확인할 수 있습니다. 하지만, 영어 설명과 부족한 내용으로 초보자들이 쉽게 각각의 기능들을 이해하는 것은 쉽지 않습니다.


함수별 정리:

PHP는 수많은 내장함수들을 제공하고 있습니다. 이를 다 파악하고 사용하기에는 어렵습니다. 3권은 내장된 함수들을 유사한 기능들 중심으로 정리하여 설명을 하였습니다. 또한 실제 업무작성시 함수들을 쉽게 찾아보기 위해서 래퍼런스 북과 같이 쉽게 인덱스화 하였습니다.


찾아볼수 있는 책:

PHP는 오랜시간동안 개발되고 누적된 다양한 응용함수들이 제공됩니다. 함수들은 너무나도 방대하여 심지어 어떤 기능들의 함수들이 있는 것 조차 확인하도 어렵습니다. 3권에서는 PHP의 함수들을 분류별로 정리하고 동작들을 설명을 합니다. 또한 프로그램을 작성하면서 찾아볼 수 있도록 정리하였습니다.


간결한 코드:

책에서 설명한 특정기능을 학습하기 위해서 짧은 코드들로 구성을 하였습니다. 전반적으로 10~20줄 이내의 코드들로 쉽게 소스를 이해하고 학습을 할 수 있습니다.


응용예제:

파일처리, JSON등 기본함수들을 통하여 실제적인 작업을 할 수 있도록 예제를 구성하였습니다. 응용예제를 통하여 실제 프로젝트에 응용하여 코드를 사용할 수 있도록 구성을 하였습니다.


책 소스코드:

본 책의 예제코드는 깃허브를 통해서 다운로드 받을 수 있습니다. 깃허브 주소는 다음과 같습니다. https://github.com/infohojin/php