회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
W3테크(W3techs)가 최근에 조사한 보고서에 따르면, PHP는 전 세계 모든 웹사이트의 79%에서 사용되고 있다고 합니다. 이러한 수치는 IT관련 수많은 커뮤니티에서 PHP수요가 줄어들고 있다고 말하는 것과 대조되는데요. PHP 프레임워크들 가운데서도 유난히 두드러지는 것을 꼽자면, 라라벨(Laravel)을 이야기해볼 수 있을 것 같습니다.
소프트웨어 개발 분야에서 프레임워크란, 개발자들이 어플리케이션을 개발하는 것을 돕기 위해 만들어진 재사용 가능한 하나의 소프트웨어 입니다. 프레임워크는 사용자들이 자유롭게 활용할 수 있는 특정한 도구들을 제공하기 때문에, 개발자들이 프로그램의 기능을 확장하고 성능을 향상시킬 수 있죠. 라라벨과 같은 소프트웨어 프레임워크의 목적은 이미 만들어져있는 다양한 솔루션을 제공함으로써 개발자들이 모든 요소들을 일일이 만들지 않게 하는 것입니다. 이 외에도, 프레임워크로써의 라라벨은 굉장히 많은 이점을 가지고 있는데요. 이번 시간 위시켓이 어디서도 들을 수 없었던 라라벨(Laravel)에 대한 모든 것을 다뤄보도록 하겠습니다.
모델-뷰-컨트롤러 패턴에는 많은 기능들이 내장되어 있습니다. 그 중에서도 가장 두드러지는 것으로는 완벽한 인증 시스템, 페이지 처리, 엘로퀀트(Eloquent) ORM(Object Relational Mapping, 객체관계매핑), 간소화된 데이터베이스 마이그레이션 등이 있는데요. MVC 패턴은 우리가 대규모의 소프트웨어 프로젝트에서 작업을 하고 있을 때에도 자신의 논리적 디렉토리 안에서 파일을 신속하게 찾을 수 있게 해주며, Eloquent ORM과도 쉽게 상호작용 할 수 있게 해줍니다. 또한, MVC 패턴을 활용하면, PHP 소프트웨어 엔지니어는 어떤 특정한 웹 어플리케이션이 실제로 어떻게 표현되는 지를 잘 컨트롤할 수 있고, 이에 맞춰서 적절하게 어플리케이션을 개선할 수 있습니다.
라라벨의 개별 모듈 가운데에는 아주 독창적이어서 다른 PHP 프레임워크에서는 찾을 수 없는 것들도 있습니다. 예를 들어서, 라라벨의 인증 라이브러리를 사용하면 암호화 및 CSRF(사이트 간 요청 위조) 보호와 같은 기능의 도움으로 데이터베이스의 보안을 더욱 강화할 수 있습니다.
아티즌을 사용한 일반적인 사례로는 데이터베이스 마이그레이션 관리, 인증 및 승인, 라라벨 개발 서버 구동 시작, 다양한 프론트엔드 프레임워크를 위한 구조물 구축, 그리고 새로운 컨트롤러, 모델, 마이그레이션 생성 등이 있습니다. 일일이 나열하기 힘들정도로, 라라벨 어플리케이션 개발에 도움이 되는 수많은 명령들이 있죠. 그 중 가장 중요한 것은 개발자들이 직접 사용자 명령을 지정해서 라라벨의 기능성을 더욱 확장시킬 수 있다는 것입니다.
다른 유명한 PHP 템플릿 엔진과는 다르게, 블레이드는 어플리케이션에 오버헤드(overhead)를 추가하지 않고 템플릿을 데이터 모델과 결합할 수 있습니다. 이 프로세스는 템플릿 상속(template inheritance)이라고 부릅니다. 또한, 블레이드는 라라벨 개발자들에게 조건문(if), 루프(loop), 주석(comment)과 같은 일련의 제어구조를 제공합니다.
이러한 제어구조는 내부적으로 PHP에 매핑(mapping)되어 대응하게 되는데요. 이 모든 특징들이 블레이드를 매우 강력하게 만들어 주기 때문에, 미리 설계되어 있는 패키지만 사용하더라도 예정된 일정보다 훨씬 앞서서 뛰어난 레이아웃을 가진 최고의 웹사이트 디자인을 만들어낼 수 있습니다.
물론 SQL 쿼리를 길게 코딩하지 않고도 간단한 PHP 문법을 사용해서 어플리케이션 데이터베이스 객체와 원활한 상호작용을 유지하는 것이 가능하기는 하지만, 엘로퀀트는 포스트그레SQL(PostgreSQL) 및 마이SQL(MySQL)과도 매끄럽게 동작합니다. 게다가 개발팀이 라라벨의 액티브레코드(ActiveRecord)를 활용할 수 있게 해주는데, 이는 라라벨에서 모델(model)을 제작하고 커스터마이징(customizing)하는 작업이 더욱 자연스러워진다는 것입니다. 엘로퀀트는 일반적으로 복잡한 경우에 있어서 테이블(table)들 사이의 간단한 관계를 매핑(mapping)하는 것을 목표로 합니다. 그렇기 때문에 개발팀에서는 어떠한 데이터베이스 시스템에서도 주어진 데이터베이스 스키마(schema)를 수정하고, 서로 공유하며, 조작할 수 있습니다.
기본적으로 라라벨은 PHP용으로 개발된 안정된 단위 테스트 패키지인 PHP유닛(PHPUnit)을 통해서 단위 테스트를 위한 특별한 기능들을 제공합니다. 단위 테스트를 위해서 phpunit.xml 파일이 자동으로 설정되고 나면, 라라벨은 Feature와 Unit이라는 디렉토리에서 테스트를 실행합니다. Feature 디렉토리는 다수의 객체들을 포함하는 보다 커다란 코드베이스(codebase)를 위한 곳이며, Unit 디렉토리는 크기가 보다 작은 코드를 위한 디렉토리입니다. PHPUnit을 통한 단위 테스트를 진행함으로써, 라라벨 개발자들은 웹 어플리케이션의 특정한 기능들을 확실하게 평가할 수 있습니다. 라라벨을 활용하면 Feature와 Unit 디렉토리의 효과적인 테스트를 기본적으로 지원하기 때문에, 이를 위해서 제3의 도구에 의존할 필요가 없습니다. 따라서 꾸준하고 지속적으로 모니터링을 할 수 있으며, 이는 소프트웨어의 품질 관리에 있어서 아주 중요한 부분입니다.
- 개발에 있어서 완전한 투명성으로 협업이 이루어진다
- 라라벨 개발자 전용의 커뮤니티를 지원한다
- 새로운 모듈과 플러그인들이 주기적인 간격으로 설치된다
- 필요한 경우에는 모호한 부분들이 제거된다
- 계속해서 성장하는 거대한 커뮤니티에 의해서 만들어진 훌륭한 튜토리얼이 존재한다
- 다른 프레임워크들에 비해서 사용자 지정을 하고, 수정하고, 확장할 수 있는 여지가 훨씬 더 많다
- 전 세계 라라벨 전문가들이 제공하는 문제 해결책을 찾아볼 수 있다
따라서 개발자들이 다른 프레임워크가 아닌 라라벨을 선택하는 이유가 더욱 분명해집니다. 라라벨은 다양하면서도 풍부한 기능을 제공하는 것만이 아니라, 전 세계의 개발자들이 모인 강력한 커뮤니티가 있어서 클라이언트의 요구사항에 의해서 웹 어플리케이션을 수정할 때에도 매우 중요한 도움을 얻을 수 있기 때문입니다.
>이 글은 'WHY LARAVEL IS THE BEST PHP FRAMEWORK'를 각색하여 작성되었습니다.