라라벨

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

라라벨은 테일러 오트웰이 CodeIgniter의 대안으로 개발한 풀 스택 웹 애플리케이션 프레임워크이다. 2011년 첫 베타 버전 출시 이후 지속적으로 발전해왔으며, 라우팅, 뷰, ORM, 인증 등 현대적인 웹 개발에 필요한 다양한 기능을 제공한다. PHP 진영에서 Symfony, CodeIgniter 등과 경쟁하며, 개발 편의성을 바탕으로 높은 인기를 얻고 있다. 라라콘(Laracon)이라는 공식 컨퍼런스를 통해 개발, 사용 관련 정보를 공유하며, MIT 라이선스를 따르는 오픈 소스 소프트웨어로 자유롭게 사용 가능하다.

라라벨 - [IT 관련 정보]에 관한 문서
기본 정보

이미지 준비중입니다.

Laravel 로고
개발자테일러 오트웰
발표일2011년 6월
최신 안정화 버전11.x.x
최신 안정화 버전 발표일2024년 3월 12일
저장소Laravel 프레임워크 GitHub 저장소
프로그래밍 언어PHP
운영체제크로스 플랫폼
종류웹 프레임워크
라이선스MIT 라이선스
웹사이트Laravel 공식 웹사이트
📚 더 읽어볼만한 페이지
  • PHP 프레임워크 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • PHP 프레임워크 - 실버스트라이프 CMS
    실버스트라이프 CMS는 PHP로 제작된 오픈 소스 콘텐츠 관리 시스템으로, 웹사이트 및 웹 애플리케이션을 개발하고 관리하는 데 사용되며, MVC 패턴과 Sapphire ORM 프레임워크를 활용하여 사용자 친화적이고 확장 가능한 플랫폼을 제공한다.
  • 웹 프레임워크 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • 웹 프레임워크 - 실버스트라이프 CMS
    실버스트라이프 CMS는 PHP로 제작된 오픈 소스 콘텐츠 관리 시스템으로, 웹사이트 및 웹 애플리케이션을 개발하고 관리하는 데 사용되며, MVC 패턴과 Sapphire ORM 프레임워크를 활용하여 사용자 친화적이고 확장 가능한 플랫폼을 제공한다.
  • PHP로 작성된 자유 소프트웨어 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • PHP로 작성된 자유 소프트웨어 - 워드프레스
    워드프레스는 PHP로 작성된 자유-오픈 소스 콘텐츠 관리 시스템으로, 테마와 플러그인을 통해 디자인 변경 및 기능 확장이 용이하며, 다양한 웹사이트 구축 및 관리를 지원하는 설치형/가입형 플랫폼이다.

2. 역사

테일러 오트웰(Taylor Otwell)은 CodeIgniter 프레임워크의 더 발전된 대안을 제공하기 위해 라라벨을 만들었다. 라라벨의 첫 번째 베타 릴리스는 2011년 6월 9일에 출시되었으며, 같은 달 말에 라라벨 1이 출시되었다.

라라벨 2는 2011년 9월에 출시되었으며, 컨트롤러 지원, 제어 반전 (IoC) 원칙에 대한 기본 지원, Blade라는 웹 템플릿 시스템이 포함되었다.

라라벨 3은 2012년 2월에 출시되었으며, Artisan이라는 cmd 명령줄 인터페이스 (CLI), 더 많은 데이터베이스 관리 시스템에 대한 기본 지원, 데이터베이스 마이그레이션, 이벤트 처리 지원, Bundles라는 패키징 시스템을 포함했다.

라라벨 4는 코드명 Illuminate로, 2013년 5월에 출시되었다. Composer를 통해 배포되는 별도의 패키지 세트로 마이그레이션했다. 데이터베이스 초기 채우기를 위한 데이터베이스 시딩, 메시지 큐 지원, 다양한 유형의 이메일 전송에 대한 기본 지원, 데이터베이스 레코드의 지연 삭제를 위한 soft deletion이 있다.

라라벨 5는 2015년 2월에 출시되었으며, Scheduler라는 패키지를 통해 정기적으로 실행되는 작업의 예약 지원, Flysystem이라는 추상화 계층, Elixir를 통한 패키지 자산 처리 개선, Socialite 패키지를 통한 외부 처리된 인증 단순화가 있다. 또한 개발된 애플리케이션을 위한 새로운 내부 디렉터리 트리 구조를 도입했다.

2015년 6월에 출시된 라라벨 5.1은 장기 지원 (LTS)을 받는 최초의 라라벨 릴리스였다.

라라벨 5.3은 2016년 8월 23일에 출시되었다. 5.3의 새로운 기능은 개발자 속도를 향상시키는 데 중점을 둔다.

라라벨 5.4는 2017년 1월 24일에 출시되었으며, Laravel Dusk, Laravel Mix, Blade Components 및 Slots, Markdown 이메일, 자동 Facades, Route 개선, 컬렉션에 대한 고차 메시징 등 많은 새로운 기능이 포함되었다.

라라벨 6은 2019년 9월 3일에 출시되었다. shift 청사진 코드 생성, 의미적 버전 관리, Laravel Vapor와의 호환성, 개선된 권한 부여 응답, 개선된 작업 미들웨어, 느린 컬렉션 및 하위 쿼리 개선 사항이 통합되었다. 프런트엔드 스캐폴딩은 메인 패키지에서 제거되어 laravel/ui 패키지로 이동했다.

라라벨 7은 2020년 3월 3일에 출시되었으며, Laravel Sanctum, 사용자 정의 Eloquent Casts, Blade 컴포넌트 태그, Fluent String Operations 및 Route 모델 바인딩 개선과 같은 새로운 기능이 포함되었다.

라라벨 8은 2020년 9월 8일에 출시되었으며, Laravel Jetstream, 모델 팩토리 클래스, 마이그레이션 스쿼싱, 페이지 매김 보기를 위한 Tailwind CSS 및 기타 사용성 개선과 같은 새로운 기능이 포함되었다.

라라벨 9는 2022년 2월 8일에 출시되었다.

라라벨 10은 2023년 2월 14일에 출시되었다.

라라벨 11은 2024년 3월 12일에 출시되었다. Laravel 블로그 및 기타 소셜 미디어에서 발표되었으며, 2월 5~6일에 암스테르담에서 열린 Laracon EU에서 자세히 논의되었다. Laravel 11과 함께 Laravel Reverb라는 자체 웹소켓 서버가 출시되었다.

라라벨 12는 2025년 1분기에 출시될 것으로 예상되는 최신 프레임워크이다. [https://laravel.com/docs/master/releases#laravel-12 laravel 정책]에 따르면 라라벨 12는 2026년 3분기까지 버그 수정으로 지원되며, 보안 수정은 2027년 1분기까지 연장된다. 이 프레임워크는 PHP 버전 8.2 - 8.3과 호환된다. 또한 모든 라라벨 릴리스에 대한 주요 업데이트가 있으며, 버그 수정은 18개월 동안 제공되고 보안 수정은 2년 동안 제공된다.

라라벨은 2011년 6월에 첫 번째 버전이 출시된 이후 지속적으로 발전해 왔다. 라라벨의 주요 버전별 출시일, 버그 수정 및 보안 수정 지원 기간, 최소 PHP 버전 정보는 다음과 같다.

👆
좌우로 밀어서 보기
버전출시일버그 수정 종료보안 수정 종료PHP 버전
1.02011년 6월
2.02011년 9월
3.02012년 2월 22일
3.12012년 3월 27일
3.22012년 5월 22일
4.02013년 5월 28일≥ 5.3.0
4.12013년 12월 12일≥ 5.3.0
4.22014년 6월 1일≥ 5.4.0
5.02015년 2월 4일2015년 8월 4일2016년 2월 4일≥ 5.4.0
5.1 LTS2015년 6월 9일2017년 6월 9일2018년 6월 9일≥ 5.5.9
5.22015년 12월 21일2016년 6월 21일2016년 12월 21일≥ 5.5.9
5.32016년 8월 23일2017년 2월 23일2017년 8월 23일≥ 5.6.4
5.42017년 1월 24일2017년 7월 24일2018년 1월 24일≥ 5.6.4
5.5 LTS2017년 8월 30일2019년 8월 30일2020년 8월 30일≥ 7.0.0
5.62018년 2월 7일2018년 8월 7일2019년 2월 7일≥ 7.1.3
5.72018년 9월 4일2019년 3월 4일2019년 9월 4일≥ 7.1.3
5.82019년 2월 26일2019년 8월 26일2020년 2월 26일≥ 7.1.3
6 LTS2019년 9월 3일2022년 1월 25일2022년 9월 6일7.2 – 8.0
72020년 3월 3일2020년 10월 6일2021년 3월 3일7.2 – 8.0
82020년 9월 8일2022년 7월 26일2023년 1월 24일7.3 – 8.1
92022년 2월 8일2023년 8월 8일2024년 2월 6일8.0 – 8.2
102023년 2월 14일2024년 8월 6일2025년 2월 4일8.1 – 8.3
112024년 3월 12일2025년 9월 3일2026년 3월 12일≥ 8.2
122025년 1분기2026년 3분기2027년 1분기≥ 8.2


LTS(장기 지원) 버전은 2년간 버그 수정, 3년간 보안 수정이 제공된다. 일반 버전은 18개월간 버그 수정, 2년간 보안 수정이 제공된다. 버전 6부터는 시멘틱 버전 관리를 채용하여 버전 번호의 증가가 버전 5 계열 시대와 크게 다르다.

각 버전별 기능은 아래 표와 같다.

👆
좌우로 밀어서 보기
버전별 기능 비교 (Laravel 1 ~ 4)
버전Laravel 1Laravel 2Laravel 3Laravel 4
인증 (Auth)
캐시
Eloquent
MySQL
PostgreSQL
SQLite
SQLServer--
마이그레이션--
IoC 컨테이너-
Config
Form 헬퍼
HTML 헬퍼
URL 헬퍼
라우팅
컨트롤러-
모델
모델 간 관계-
리다이렉트
응답
String(문자열) 헬프 함수
유효성 검사-
유닛 테스트--
Blade 템플릿 엔진--
DB 시딩---
---
메일---
퍼사드 (Facade)---
명령줄(CLI)--
확장성모듈라이브러리모듈 라이브러리번들 라이브러리Composer 패키지


Laravel 4와 Laravel 5는 아래 표와 같이 디렉토리 구조에 차이가 있다.

👆
좌우로 밀어서 보기
Laravel 4와 Laravel 5의 디렉토리 구조 차이
Laravel 4Laravel 5
app/commandsapp/Console
app/configconfig
app/controllersapp/Http/Controllers
app/databasedatabase
app/langresources/lang
app/modelsapp
app/start없음
app/storagestorage
app/teststests
app/viewsresources/views
app/filters.php폐지(app/Providers/FilterServiceProvider에 정의)
app/routes.phpapp/Http/routes.php(5.2 이후는 app/routes/api.php에 정의)
app/database/production.sqlitestorage/database.sqlite(파일은 없으므로 직접 만들 필요가 있음)

2.1. 출시 역사

라라벨은 2011년 6월에 첫 번째 버전이 출시된 이후 지속적으로 발전해 왔다. 라라벨의 주요 버전별 출시일, 버그 수정 및 보안 수정 지원 기간, 최소 PHP 버전 정보는 다음과 같다.

👆
좌우로 밀어서 보기
버전출시일버그 수정 종료보안 수정 종료PHP 버전
1.02011년 6월
2.02011년 9월
3.02012년 2월 22일
3.12012년 3월 27일
3.22012년 5월 22일
4.02013년 5월 28일≥ 5.3.0
4.12013년 12월 12일≥ 5.3.0
4.22014년 6월 1일≥ 5.4.0
5.02015년 2월 4일2015년 8월 4일2016년 2월 4일≥ 5.4.0
5.1 LTS2015년 6월 9일2017년 6월 9일2018년 6월 9일≥ 5.5.9
5.22015년 12월 21일2016년 6월 21일2016년 12월 21일≥ 5.5.9
5.32016년 8월 23일2017년 2월 23일2017년 8월 23일≥ 5.6.4
5.42017년 1월 24일2017년 7월 24일2018년 1월 24일≥ 5.6.4
5.5 LTS2017년 8월 30일2019년 8월 30일2020년 8월 30일≥ 7.0.0
5.62018년 2월 7일2018년 8월 7일2019년 2월 7일≥ 7.1.3
5.72018년 9월 4일2019년 3월 4일2019년 9월 4일≥ 7.1.3
5.82019년 2월 26일2019년 8월 26일2020년 2월 26일≥ 7.1.3
6 LTS2019년 9월 3일2022년 1월 25일2022년 9월 6일7.2 – 8.0
72020년 3월 3일2020년 10월 6일2021년 3월 3일7.2 – 8.0
82020년 9월 8일2022년 7월 26일2023년 1월 24일7.3 – 8.1
92022년 2월 8일2023년 8월 8일2024년 2월 6일8.0 – 8.2
102023년 2월 14일2024년 8월 6일2025년 2월 4일8.1 – 8.3
112024년 3월 12일2025년 9월 3일2026년 3월 12일≥ 8.2
122025년 1분기2026년 3분기2027년 1분기≥ 8.2


LTS(장기 지원) 버전은 2년간 버그 수정, 3년간 보안 수정이 제공된다. 일반 버전은 18개월간 버그 수정, 2년간 보안 수정이 제공된다. 버전 6부터는 시멘틱 버전 관리를 채용하여 버전 번호의 증가가 버전 5 계열 시대와 크게 다르다.

각 버전별 기능은 아래 표와 같다.

👆
좌우로 밀어서 보기
버전별 기능 비교 (Laravel 1 ~ 4)
버전Laravel 1Laravel 2Laravel 3Laravel 4
인증 (Auth)
캐시
Eloquent
MySQL
PostgreSQL
SQLite
SQLServer--
마이그레이션--
IoC 컨테이너-
Config
Form 헬퍼
HTML 헬퍼
URL 헬퍼
라우팅
컨트롤러-
모델
모델 간 관계-
리다이렉트
응답
String(문자열) 헬프 함수
유효성 검사-
유닛 테스트--
Blade 템플릿 엔진--
DB 시딩---
---
메일---
퍼사드 (Facade)---
명령줄(CLI)--
확장성모듈라이브러리모듈 라이브러리번들 라이브러리Composer 패키지


Laravel 4와 Laravel 5는 아래 표와 같이 디렉토리 구조에 차이가 있다.

👆
좌우로 밀어서 보기
Laravel 4와 Laravel 5의 디렉토리 구조 차이
Laravel 4Laravel 5
app/commandsapp/Console
app/configconfig
app/controllersapp/Http/Controllers
app/databasedatabase
app/langresources/lang
app/modelsapp
app/start없음
app/storagestorage
app/teststests
app/viewsresources/views
app/filters.php폐지(app/Providers/FilterServiceProvider에 정의)
app/routes.phpapp/Http/routes.php(5.2 이후는 app/routes/api.php에 정의)
app/database/production.sqlitestorage/database.sqlite(파일은 없으므로 직접 만들 필요가 있음)

3. 특징

라라벨은 풀 스택 웹 애플리케이션 프레임워크로, 라우팅, 요청 처리, 뷰, 쿼리 빌더, ORM(객체 관계 매핑), DI(의존성 주입), 인증 등의 사용자 관리, 유닛 테스트, 브라우저 테스트 등 현대적인 프레임워크가 요구하는 기능을 구현하고 있다. 콘솔에서 Artisan 명령어 (Ruby on Rails의 rails 명령어에 해당)를 사용하여 컨트롤러와 뷰의 템플릿 생성, 데이터베이스 스키마 생성 등, 일련의 작업을 수행할 수 있다. 또한, 사용자의 오리지널 Artisan 명령어를 생성하거나, 컨트롤러 등의 일반 코드 내에서 Artisan 명령어를 호출하는 것도 가능하다.

주요 웹 애플리케이션 프레임워크 중 후발 주자인 라라벨의 버전 1은 2011년 6월에 출시되었다. 버전 1 출시 후 버전 2 (2011년 11월), 버전 3 (2012년 2월)이 빠른 속도로 출시된 후, 버전 4 (2013년 5월)에서는 코드가 처음부터 다시 작성되었으며, 당시 표준이 되어가던 패키지 관리 시스템인 Composer를 채택하고, PHP의 역사가 있는 프레임워크인 Symfony의 컴포넌트를 이용하는 등, 근본적인 변경이 이루어졌다.

2015년 2월에 출시된 버전 5.0은 원래 버전 4.3으로 출시될 예정이었으나, 변경점이 크다는 이유로 메이저 버전 업그레이드로 처리되었다. 커뮤니티의 활발한 활동을 배경으로, 1년에 한 번 이상 메이저 버전 업그레이드가 이루어지며, 마이너 버전 업그레이드에서도 반복적으로 기능 추가 등이 이루어지고 있다. 보안 수정 기한도 비교적 짧기 때문에, 라라벨로 만들어진 웹 애플리케이션은 항상 최신 버전에 대응해야 한다. 버전 5.5와 버전 6은 LTS(Long Term Support, 장기 지원)로, 이들은 보안 수정 기한이 3년이었기 때문에 LTS 버전을 사용하는 사용자가 다른 버전에 비해 많았다. 그러나, 최초 LTS 예정이었던 버전 9는 LTS가 아니게 되었고, 버전 10도 LTS가 아니었기 때문에, 사용자는 EOL까지 앞으로 출시될 새로운 버전에 대응해야 한다.

4. 다른 웹 프레임워크와의 비교

PHP 진영에서는 라라벨, Symfony, CodeIgniter 등이 경쟁하고 있으며, 라라벨은 현대적인 기능과 개발 편의성을 바탕으로 높은 인기를 얻고 있다. Python의 장고, Ruby의 루비 온 레일즈와 함께 대표적인 백엔드 웹 프레임워크로 꼽히기도 한다. 스택 오버플로우의 질문 수에서도 다른 PHP 웹 애플리케이션 프레임워크가 점유율을 잃는 가운데, 라라벨은 점유율을 높이고 있으며, 사실상 PHP 웹 애플리케이션 프레임워크의 사실상 업계 표준이라고 할 수 있는 상태가 되었다. 다만, 벤치마크에서 다른 주요 PHP 웹 애플리케이션 프레임워크와 비교했을 때, 시간당 요청 처리 수는 적고, 메모리 사용량은 많은 경향이 있다.

5. 라라콘 (Laracon)

라라콘(Laracon)은 라라벨 프레임워크를 중심으로 라라벨의 개발, 사용 및 관련 일반적인 소프트웨어 개발 주제를 다루는 공식 라라벨 컨퍼런스이다. 라라콘은 미국, 유럽, 인도, 호주 및 온라인에서 개최되었다. 일반적으로 컨퍼런스는 매년 미국과 유럽에서 열린다. 2017년은 라라콘이 온라인 이벤트로만 개최된 첫 해였으며, 2018년은 라라콘이 호주에서 개최된 첫 해였다. 매년 컨퍼런스에는 다양한 후원자와 주최자가 있지만, 라라벨, 라라벨 뉴스, 유저스케이프가 일반적으로 주요 주최자이다.

수많은 라라콘 컨퍼런스가 공식적으로 운영되는 동안, 라라벨 라이브(Laravel Live)라는 이름으로 여러 다른 컨퍼런스가 운영된다. 현재, 매년 라라벨 라이브 영국(Laravel Live UK), 라라벨 라이브 덴마크(Laravel Live Denmark), 라라벨 라이브 인도(Laravel Live India) 컨퍼런스가 개최된다. 공식적으로 운영되지는 않지만, 테일러 오트웰(Taylor Otwell)의 허가를 받아 라라벨이라는 이름을 사용한다.

👆
좌우로 밀어서 보기
Laracon 개최 일정
날짜장소
2013년 2월 22–23일워싱턴 D.C.
2013년 8월 30–31일암스테르담
2014년 5월 15–16일뉴욕
2014년 8월 28–30일암스테르담
2015년 8월 11–12일켄터키주 루이빌
2015년 8월 25–26일암스테르담
2016년 7월 27–29일켄터키주 루이빌
2016년 8월 23–24일암스테르담
2017년 3월 8일온라인
2017년 7월 25–26일뉴욕
2017년 8월 28–30일암스테르담
2018년 2월 7일온라인
2018년 7월 25-26일시카고
2019년 3월 6일온라인
2019년 7월 24-25일뉴욕(PLAYSTATION THEATER 타임스 스퀘어)
2020년 2월 26일온라인
2020년 3월 21일도쿄(2020년 2월 21일, 코로나19(COVID-19)로 인해 중지)
2020년 8월 26일온라인
2021년 3월 17일온라인
2021년 9월 1일온라인
2022년 2월 9일온라인
2023년 7월 19-20일내슈빌
2024년 2월 5-6일암스테르담

6. 한국과 라라벨

7. 라이선스

라라벨은 MIT 라이선스에 따라 라이선스가 부여된 오픈 소스 소프트웨어이다. 즉, 라라벨은 누구든지 자유롭고 제한 없이 사용할 수 있다. 단, 저작권 표시 및 본 허가 표시를 라라벨의 모든 복제본 또는 중요한 부분에 기재해야 한다. 제작자 또는 저작권자는 소프트웨어에 관하여 일체의 책임을 지지 않는다.