kdh7***
2017-05-18

* PHP 7 설명서 X, PHP 7을 사용한 PHP 웹개발 입문서
* 갖출 것은 다 갖춘 책, 하지만 한 권으로는 부족한 책
* PHP 프레임워크를 사용하기 전에 거쳐가면 좋을 책
* 연습문제가 좋은 책
추천하고 싶은 사람
프론트엔드 경험이 있으면서 백엔드 과정에 관심이 있는 사람
개발에 대한 이해가 있으며, PHP를 시작해보고 싶은 사람
충분한 개발 지식이 있으며, 빠르게 PHP 기본을 다룬 후 프레임워크를 사용하고자 하는 사람
추천하고 싶지 않은 사람
프로그래밍 입문자
PHP 사용경험이 있으며 PHP7의 새로운 기능에만 관심이 있는 사람
Summary
당연한 이야기지만, 어떤 프레임워크를 사용하려면 해당 프레임워크가 사용하는 언어에 대한 기초 이상의 이해가 필요합니다. 요즘 라라벨과 같은 프레임워크로 PHP가 다시 소생하고 있는 시점에서 그런 프레임워크를 사용하기 전에 거쳐가면 좋을 책입니다.
국내 처음으로 소개된 PHP7 서적 심지어 Oreily 서적이라 많은 PHP사용자 분들께서 PHP7과 기존 PHP5 간의 차이를 알려주는 책을 생각하셨겠지만..., 안타깝게도 이 책은 PHP7의 신기술을 안내하는 그런 책이 아닙니다. 전반적으로 PHP 입문 나아가 웹개발 입문서 서적이며 언어와 버전으로써 PHP7을 사용한 서적입니다.
가장 적절한 독자는 어느 정도 개발지식이 있고 PHP 프레임워크를 사용하기 직전인 분들 이라고 생각합니다. 입문적이지만, 입문적이지만은 않고, 깊이가 있는 듯 하지만, 너무 깊이 있지도 않아 처음부터 이 책으로 프로그래밍에 입문하시는 것은 적절하지 못하다고 생각합니다. 최소한 입문자는 넘어서신 분들이 대상독자라고 생각합니다.
컨텐츠 면에서 단순히 PHP 언어 문법을 넘어서서 상당히 많은 내용을 압축적으로 다루고 있습니다. 웹 구축에 관한 기본적인 사항들, 간략하지만 기본적인 프레임워크들에 대한 설명, 그리고 무엇보다 이 책의 목차를 보며 가장 신선한 충격을 받았던 디버깅, 테스트, 소프트웨어 공학까지 다룹니다. 물론 다양한 컨텐츠를 담으려하다보니 설명적인 부분에서 부족하다고 생각하거나 입문자가 보면 오해를 만들 수 도 있을만한 내용이라고 생각이 드는 부분도 있었습니다. 그래서 역으로 어느 정도 경험이 있으신 분들이 PHP를 처음 배우고 프레임워크를 쓰시기 전에 보고 가시면 아주 좋을 거 같다 생각되었습니다. 풀이 순서에서도 특색을 보이는 데 PHP 설치, IDE소개 등 기본적인 환경설정에 관한 소개 없이 바로 PHP에 관한 내용을 풀어나갑니다. PHP 언어 기초에서도 가장 먼저 문자열과 문자열과 관련된 기본 함수들을 다루고 변수로 넘어가 풀이 난이도 곡선이 갑자기 높았다 떨어지는 듯한 구조를 가지고 있습니다. 입문자로 막연하게 '웹 서비스 만들어보고 싶다'하시는 분들에겐 적합하지 않지만, 어느정도 기본적인 지식을 갖고 라라벨과 같은 PHP 프레임워크를 사용하기 직전인 분들에겐 매우 적합한 점검소가 될것 같습니다.
만약 이 책으로 처음 PHP를 접하시는 경우라면, '생활코딩'과 같은 온라인 강의 또는 학습 자료를 선행하시고 본격적으로 프레임워크 등을 활용해 개발을 하시기 전에 한번 학습해보시면 매우 탄탄한 로드맵이 될것 같습니다.
Contents
책의 구성이 상당히 흥미로운 책입니다. 우선 일반적인 개발 입문서적과 다르게 PHP 설치, PHP 개발환경들이 부록으로 다뤄지거나 상당히 뒷부분에서 다뤄집니다.(p330에 가서야 처음 IDE에 관한 내용이 나옵니다.) 초반부 소개, 추천사를 보면 이 책을 입문자 내지는 초급자를 위한 책으로 보고있는데 개인적으로 프로그래밍 입문자를 위한 책은 아니라고 생각합니다. 다른 웹 프로그래밍들을 해본 경험이 있지만, PHP는 처음인 그런분들이라면 모르겠지만, 처음 언어로 PHP를 선택하신 케이스라면 상당히 학습이 어려우실것 같습니다. 그런 분이시라면 적어도 '생활코딩'과 같은 온라인 학습소를 이용하셔서 PHP 설치도 해보시고 기본적인 내용을 가볍게 학습하신 후 읽어보시길 권합니다.
이처럼 조금 당황스러운 전개 구조를 가지고 있고 설명부분에서도 그렇게 친절하다 할 수는 없지만, 전체적인 컨텐츠의 구성은 상당히 만족스러운 책이었습니다. 한마디로 표현하면, 갖출건 다 갖춘 책!이라 할 수 있겠습니다. 우선 디버깅, 테스트, 소프트웨어 공학을 따로 장을 할애하고 있습니다. 상당히 충격적이었고, 이 책은 진짜 제대로 알려주고 싶어한다는 느낌이었습니다. 많은 입문 서적을 보았지만 저런 부분까지 다루는 책은 정말 많이 보지 못했기 때문에 상당한 감동까지 받기도 했습니다.
참고라는 형태로 들어가있는 부분들도 상당히 좋았습니다. 특히 데이터베이스에서 기본적인 SQL을 대부분 다뤄주면서, 학습에 상당히 많은 도움을 받을 수 있었습니다. 설명에 있어서 조금 들쭉 날쭉하다는 느낌이 있긴 했지만, 확실히 이런부분에서는 초급자를 타겟으로 했다는 느낌이었습니다. 그리고 많은 내용이 압축적으로 들어가 가볍게 쑥쑥 읽어가기 어렵지만, 분명 그 내용들은 초급자가 중급자로 넘어가기 위해 필수적인 사항들이고, 책이 그 징검다리 같은 역할을 해준 다는 것입니다..
책에서 제시되는 예제는 두 가지 타입이 있습니다. 하나는 책에서 설명을 위해 사용된 예제, 또 하나는 학습한 내용의 복습을 위해 제시된 연습문제와 그 답안입니다. 책에서 설명을 위해 사용된 예제는 매우 평이한 편입니다. php를 잘 모르더라도, 프로그래밍에 익숙하신 분이라면 수도 코드 읽듯이 읽으실 수 있을지도 모르겠습니다. 반면 연습문제로 제시되는 문제들은 난이도가 있는 것은 아니지만, 충분히 학습사항을 점검해보기에 좋은 예제들이라고 생각이 됩니다.
두 가지 타입의 예제가 각각 설명을 쉽게 이해할 수 있게 해주고, 학습한 내용을 짚어보고 가기엔 좋지만, 결정적인 단점은 해당 예제들만 학습해서는 웹서비스를 만들기 상당히 어려울거 같다는 것입니다. 이 책으로 전체의 흐름과 내용을 보기에는 매우 좋지만, 이 책으로만 웹서비스를 만들겠어! 는 불가능하다 판단됩니다. 그래서 제목이 러닝 PHP인 것같습니다.
Conclusion
1. PHP를 이용한 웹개발을 배우기에 매우 좋은 책입니다.
2. 내용이 매우 알찹니다.
3. 프로그래밍 입문자를 위한 책은 아닙니다.(적어도 PHP가 무엇인지 가볍게 학습 하시고 나서 보시길 권합니다)
4. 이 책 한 권만으로는 안됩니다.
5. 정말 간단하게, 네트워크 이론, 객체 지향, 데이터베이스, 디버깅, 테스팅, 소프트웨어 공학, 프레임워크 등을 다룹니다. 징검다리로 매우 좋을 것 같습니다.