본문 바로가기
[Review]/Book

[도서 리뷰] 처음부터 제대로 배우는 라라벨

by 반가운 해피빈이 2021. 10. 24.

> 진행에 앞서

요즘은 프레임워크의 시대이다.

내가 전문분야로 삼고 있는 안드로이드도 하나의 거대한 프레임워크이며, 백엔드로 널리 쓰이고 있는 스프링도 당연히 프레임워크이다.

이렇게 많은 프레임워크를 접하면서 서서히 잊고 있던 하나의 언어가 있었다.

바로 php이다. 예전에 제로보드가 한창이던 시절에 php를 지원하는 웹 호스팅을 찾아서 간단한 mysql DB와 결합하여 제로보드 설치하고, 주변사람들과 간단하게 게시판을 공유하며, 홈페이지를 운영하던 시절이 있었는데, 그러한 php 기술이 이제는 사장되어 많은 사람에게 서서히 점유율을 뺏기는 중이라고만 생각했었다.

그러던 중 우연한 기회로 다른 사람들의 프로젝트를 몇 개 둘러볼 기회가 있었는데, 그 중 많이 쓰이는 프레임워크인 라라벨로 개발했다는 것을 보게 되었다.

이름도 생소한 라라벨로 진행한 프로젝트라는 것이 어떤 것인지 궁금하여 이렇게 책을 접하고, 리뷰를 적게 되었다.

 

> 책에 대한 간단한 정보

이 책은 php를 기반으로 한 프레임워크인 라라벨에 대한 책이다.

기본서의 느낌이 많이 났지만, 생각보다 두꺼운 분량에 놀라기도 하였다.

라라벨 전반에 대해 다루고 있으며, 실습을 중심으로 기록되어있을 것처럼 보였지만, 그런걸 의도하고 구성한 것으로 보이지는 않았다.

그래도 라라벨의 처음부터 필요한 거의 모든 기본 지식들을 다룸으로써, 알고자 하는 이들에게 정보가 누락되지 않도록 노력한 흔적이 보였다.

표지이다

 

> 인상깊은 부분들

대상독자에 대한 설명

우선, 대상 독자는 처음에 읽었을 때 와 닿지는 않았는데, 책을 한번 가볍게 읽고 난 뒤에 다시 찾아보게 되었다.

대상 독자는 아무래도 이 곳에 적힌 것이 맞는지 모르겠다. 웹사이트를 한번도 만들어 본 적이 없지는 않은데, 어려움이 느껴졌기 때문이다. 기본적인 프로그래밍 경험도 있다고 생각이 되는데 어려웠다.

 

프레임워크를 시작으로 라라벨에 대한 설명

라라벨의 장점이라기 보다는 프레임워크를 써야 하는 이유에 나온 챕터이다.

이 내용을 보고나서 정리된 생각으로는, PHP 개발자의 입장에서 라라벨을 사용하지 않고 그냥 PHP 개발자로서 커리어를 쌓고 개발할 수도 있지만, 라라벨이라는 프레임워크를 도입하면 어떠한 이점이 있는지 서술해 주는 쪽에 가까운 느낌이다.

자바의 스프링, 파이썬의 장고나 플라스크 등 타 프레임워크와 비교하여 어떠한 장점이 있는지 알려주지 않아서 아쉬움이 있었다.

 

라우트로 시작한 기본 작동방식

다른 프레임워크에서도 있는 개념인 라우트라는 개념에 대해 언급하면서 Hello World를 시작하게 된다.

다행히도 이 부분은 실습하면서도 정상적으로 띄울 수 있었으며, 그래도 시작은 어렵지 않다는 것을 알 수 있게 하였다.

클로저로 표현하거나 컨트롤러로 표현할 수 있다는 점을 알려준 것이 특이하게 와 닿았다.

 

라우팅 및 컨트롤러 설명 시작

백엔드 프로그래밍에서 중요하고 항상 찾게 되는 REST API를 만드는 과정에 대한 설명이다.

컨트롤러로 구현하는 것이 편리하고 구조적인 측면에서 장점을 가져올 수 있기 때문에 이 부분을 강조하며 설명하고 있다.

프로그래밍 좀 해 본 사람이라면 알 수 밖에 없는 MVC 패턴도 사용하고 있다.

 

데이터베이스와 엘로퀀트

초중반 부분에서 엘로퀀트에 대한 설명이 나오는데, 사실 처음 언급된 것은 초반 부분이었다. 그 부분에서는 엘로퀀트가 뭔지 알지도 못하는 상황에서 이러한 용어를 쓰기에 다들 아는건가 싶었는데, 이 부분에서 제대로 설명하고 있었다. 물론 제대로라기 보다는 이런게 있다는 정도라고 보였다.

 

API 제공을 위한 컨트롤러 구성과 JSON

REST API를 구성할 때 JSON으로 응답값을 주는 것은 이제 일반적이다. 많은 곳에서 JSON으로 데이터를 주고 받기 때문에, 이러한 부분은 찾아보기 좋은 부분이다. 라라벨을 사용할 때 인상깊게 본 독특한 점은 프레임워크 내에서 이렇게 필요한 일부 기능을 위해서 php artisan 명령을 사용하면 즉석으로 코드 템플릿이 생성된다는 점이다.

 

많은 주제를 다룬다는 것을 알 수 있게 한 뒷표지

PHP에 대한 책이 관련도서로 나와있다. 당연히 도움이 될 것이다.

또한 많은 주제를 가지고 책을 쓴 것이 보인다. 라라벨 개발 환경 구축부터 시작하여, 사용자 인증, API 작성, 스케줄러, 헬퍼와 컬렉션 등 기본적으로 백엔드 프로그래밍에서 사용하는 개념에 대한 것을 포함하고 있다.

 

IntelliJ에서 열어본 라라벨 프로젝트
실행하고서 계속 보았던 에러화면

이 책을 읽으며, 라라벨을 익히고자 많은 시간을 실습에 할애해 보았다.

집에서 쓰는 메인 피씨는 윈도우즈10 환경이기에 이 환경에서 잘 돌아가는지 궁금하여 열심히 nginx와 php를 설치하였고, composer와 laravel을 설치하여 진행해 보았다.

그 결과... 처참하게 에러들을 보았고, 결국 실패하였다.

대신, macOS 환경에서는 Homebrew를 사용하여 비교적 쉽게 환경을 구축할 수 있었고, 이것을 IntelliJ에서 열고 간단하게 코드 편집 및 실행을 할 수 있었다. 하지만, 제대로 진행하기엔 매우 어려웠다.

애초에 코드 스니펫이 아무것도 모르는 사람을 타게팅하게 되어있는 것으로 보이지는 않았으며(에러 핸들링에 대한 부분은 거의 언급되지 않음), 설치에 대한 부분도 알아서 다 진행했기 때문에, 이 책에서 구축한 환경과 차이가 있다 하더라도 알 수가 없었기 때문이다.

 

> 괜찮은 부분

1. 라라벨이라는 프레임워크의 매력을 느끼게 해 주었다.

사실 라라벨이라는 프레임워크는 백엔드 개발자 사이에서는 유명한지는 모르겠지만, 클라이언트 개발자로서는 생소하였다. 그리고 PHP 개발에 대해서도 이렇게 발전되고 있다는 사실 자체도 잘 모르고 있었기 때문에 이 책에서 다루었던 다양한 부분과 설명으로 인해, 모던 프로그래밍 프레임워크들에서 다루고 있는 개념들도 잘 도입되어 있다는 것을 알게 되었다. PHP 언어 자체를 한 때 열심히 익혀본 1인으로서, 라라벨 프레임워크는 지금 뿐 아니라 언젠가 다시 익혀보고 싶다는 충동이 들게 만들었다.

 

2. 백엔드라면 필요한 전체적인 개념에 대해 다루었다.

이 책에는 라라벨의 라우팅, 컨트롤러, 블레이드 템플릿, 데이터베이스, 엘로컨트, 아티즌, 요청, 응답, API 등에 대해 다루고 있다. 정말 많은 요소에 대해서 다루었기 때문에 책의 두께도 상당한 편이다.(700페이지가 넘는다.) 각 개념에 대해서 짧다면 짧겠지만, 나름 충실히 설명하고 있다. 이러한 설명이 없었다면 라라벨은 아직은 상용에는 부족한 정도로 발전중인 프레임워크로 여겼을지도 모르겠다. 하지만, 현재 충분히 상용 서비스에 문제없을 정도의 기능을 내포하고 있기 때문에, 일단 학습이 잘 되지는 않았더라도 충분히 도입을 고민하게 만드는 정도로 기능을 나열하고 있다.

 

3. 많은 양의 짧은 코드 스니펫으로 개념에 대한 핵심만 잘 전달하고 있다.

짧은 코드 스니펫이 많기 때문에 어찌보면 실습에는 매우 부적절하기도 하다. 하지만, 각 하나의 개념들에 대해서는 군더더기 없는 예제코드를 보여주고 있기도 하다. 어느정도 라라벨을 알거나 익히는 데 문제가 없는 사람이라면 이러한 코드 스니펫들로 인해 확실히 어떤 부분이 영향을 주는 코드인지 헷갈리지 않고 알 수 있을 것이다.

 

> 아쉬운 부분

1. 처음 라라벨을 접하는 사람에게는 매우 어려운 책이다.

이 책의 궁극적인 아쉬움이다. 이 책은 처음부터 제대로 배우는 라라벨이라는 책의 이름처럼, 처음 접하는 사람이 그렇게 어렵지 않을 것이라고 예상했다. 하지만, 그와는 정반대로 어느정도 라라벨을 알고 있는 사람이 보기에 좋았다. 그래서 이 제목을 다시 해석하게 되었다. '처음부터'가 중요한 것이 아닌 '제대로'가 중요한 부분이었다. 그래서 제대로 배우는 라라벨을 위해 처음부터 모든 내용을 담은 책이라는 뜻에 가깝게 보인다. 결국 이 학습을 위해서는 반드시 인터넷의 또다른 자료나, 다른 책이 필요하다고 생각이 든다. 신규 용어도 많이 나오는데 이에 대한 설명이 충분치 않게 느껴진다.

 

2. 실습하기에 적절하지 않은 구성이다.

윈도우로 실습을 시작했던 나의 잘못인가 모르겠지만, 일단 책에는 애초에 라라벨을 설치하는 방법에 대한 가벼운 튜토리얼조차 나오지 않는다. 알아서 웹서버와 컴포저까지는 설치를 해야, 아니 라라벨도 알아서 설치를 해야 하는 상황이다. 그래서 윈도우에서는 제대로 실행하기 어려웠으며, 그나마 macOS에서는 정상적으로 설치하여 진행할 수 있었다. 하지만, 이 이상은 어려웠다. 각 실습을 위해 페이지를 넘기며 진행하는데, 제대로 실행이 되지 않는 부분도 많았고, 무슨 결과를 기대해야 하는지, 확인은 어떻게 해야하는지도 어려웠다. 그 결과 애초에 이 책은 코드가 많이 나오지만 실습을 위한 책은 아니라는 생각을 하게 만들었다.

 

3. 구성을 통해 말하고자 하는 점이나 강조점이 보이지 않는다.

앞서 설명한 것에 의하자면, 라라벨의 다양한 주제에 대해 말하고 있다고 하였다. 하지만, 이것이 다양하게 많아서 그런지는 모르겠지만, 전체적으로 뿐 아니라 각 책터마다도 강조하고자 하는 점이 잘 보이지 않는다. 그래서 마치 발췌하여 보는 책은 아니지만, 사전처럼 발췌해서 보는것이 적절해 보일 정도이다. 잘 모르는 입장에서 보자면 그러한 강조점들이 눈에 들어온다면 훨씬 집중도가 올라갈 것 같다.

 

> 개인적인 평점

- 가격: 6 / 10

- 내용: 7 / 10

- 디자인: 6 / 10

- 구성: 4 / 10

 

결론적으로는 라라벨을 처음 익히는 사람에게는 추천하고 싶지 않다. 최소한 혼자 좌충우돌 인터넷을 뒤지든, 쉬운 책을 한번 접하고 오든, 그 이후에 이 책을 읽었으면 하는 바람이다.

 

> 정보

저자: 맷 스타우퍼

옮긴이: 이현석, 안정수

출판사: 한빛미디어

가격: 48,000원

전체 페이지: 716페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형

댓글0