CakePHP

CakePHP
개발자Cake Software Foundation, Inc.
발표일2005년 4월(21년 전)(2005-04)
안정화 버전
5.4.3 위키데이터에서 편집하기 / 2026-10-03;21일 전
저장소
프로그래밍 언어PHP
운영 체제크로스 플랫폼
플랫폼PHP 8.1+
언어다국어
종류웹 프레임워크
라이선스MIT 허가서
웹사이트cakephp.org 위키데이터에서 편집하기

CakePHP는 오픈 소스 웹 프레임워크이다. 모델-뷰-컨트롤러(MVC) 접근 방식을 따르며 PHP로 작성되었고, 루비 온 레일즈의 개념을 모델로 하며 MIT 허가서로 배포된다.

CakePHP는 설정보다 관습, 모델-뷰-컨트롤러, 액티브 레코드 패턴, 연관 데이터 매핑, 프론트 컨트롤러와 같은 잘 알려진 소프트웨어 공학 개념과 소프트웨어 디자인 패턴을 사용한다.

역사

CakePHP는 2005년 4월, 폴란드의 프로그래머인 미할 타타리노비치(Michal Tatarynowicz)가 고속 응용 프로그램 개발 프레임워크의 최소 버전을 PHP로 작성하여 'Cake'라고 이름 붙이면서 시작되었다. 그는 이 프레임워크를 퍼블릭 도메인 라이선스로 공개했으나 곧 MIT 허가서로 변경되었고, 온라인 개발자 커뮤니티에 개방되었다.

2005년 12월, L. 매스터스(L. Masters)와 G. J. 우드워스(G. J. Woodworth)는 CakePHP 관련 개발을 촉진하기 위해 Cake Software Foundation을 설립하였다. 버전 1.0은 2006년 5월에 출시되었다.

이 프로젝트의 영감 중 하나는 루비 온 레일즈였으며, 그 개념 중 다수를 사용하였다. 그 이후 커뮤니티는 성장하여 여러 하위 프로젝트를 탄생시켰다.

2009년 10월, 프로젝트 관리자였던 우드워스와 개발자 N. 아벨레(N. Abele)는 리튬 웹 프레임워크(이전에는 CakePHP 프로젝트의 일부였음)를 포함한 자신들의 프로젝트에 집중하기 위해 프로젝트에서 사임했다. 남은 개발 팀은 이전에 정의된 원래 로드맵에 계속 집중하였다.

특징

플러그인을 사용하면 개발자가 컨트롤러, 모델, 뷰 및 기타 클래스의 조합을 패키지화하여 여러 애플리케이션에서 재사용하거나 다른 개발자가 사용할 수 있도록 할 수 있다. CakePHP 3부터는 컴포저를 사용하여 플러그인을 설치할 수 있게 되었다.

CakePHP의 ORM(객체 관계 매핑)은 액티브 레코드 패턴과 데이터 매퍼 패턴의 고급 PHP 하이브리드로, 두 가지의 핵심 개념을 차용했다. CakePHP ORM은 데이터베이스 테이블을 나타내는 테이블 클래스와 개별 테이블 로우를 나타내는 엔티티 클래스라는 두 가지 주요 객체 유형을 사용한다.

쿼리 빌더는 새로운 ORM의 동반자로 CakePHP 3에서 도입되었다. 쿼리 빌더는 수동으로 작성하는 대신 프로그래밍 방식으로 SQL 쿼리를 생성하기 위한 클래스 및 메서드 집합을 제공한다. ORM은 쿼리 빌더를 광범위하게 사용한다.

라우팅 및 리버스 라우팅 기능이 있다. CakePHP 라우터를 사용하면 복잡한 HTTP 애플리케이션 라우팅이 가능하며, 들어오는 요청을 올바른 컨트롤러와 액션으로 라우팅한다. 리버스 라우팅은 경로와 링크 간의 관계를 생성하여, 링크가 항상 올바른 유니폼 리소스 로케이터로 생성되도록 보장한다.

뷰 셀(View Cells)은 뷰 로직을 호출하고 템플릿을 렌더링할 수 있는 소형 미니 컨트롤러를 제공한다. 이는 작고 재사용 가능한 페이지 구성 요소를 만드는 데 이상적이다.

마이그레이션은 데이터베이스 스키마에 대한 버전 관리를 제공한다. 이를 통해 애플리케이션 로직의 변경 사항과 그에 상응하는 데이터베이스 변경 사항이 동기화되도록 유지할 수 있다. 이는 CakePHP 애플리케이션 배포뿐만 아니라 다수 개발자로 구성된 팀의 개발을 크게 단순화한다. CakePHP 마이그레이션 도구는 Phinx 프로젝트를 기반으로 한다.

ORM 또는 쿼리 빌더에서 생성된 결과 집합을 쉽게 페이지화할 수 있도록 자동 페이지네이션을 제공한다.

폼 빌더 및 유효성 검사기를 통해 데이터 유형과 유효성 검사 모두에 대해 모델 계층과 연결된 폼을 프로그래밍 방식으로 생성할 수 있다.

CakePHP 베이크(Bake)는 애플리케이션, 스켈레톤, 상용구 코드를 자동으로 생성하기 위한 도구이다. 기존 데이터베이스 스키마를 사용하여 올바른 데이터 관계 및 데이터 유형을 추론하고 이를 사용하여 컨트롤러, 모델 객체 및 뷰 템플릿의 전체 집합을 생성한다. 코딩 없이도 기본적인 CRUD 애플리케이션을 생성할 수 있다.

컨퍼런스

연도 위치
2025 스페인, 마드리드
2024 룩셈부르크, 에슈쉬르알제트
2023 미국, 로스앤젤레스
2022 가상
2021 가상
2020 가상
2019 일본, 도쿄
2017 미국, 뉴욕
2016 네덜란드, 암스테르담
2015 미국, 뉴욕
2014 스페인, 마드리드
2013 미국, 샌프란시스코
2012 영국, 맨체스터
2011 영국, 맨체스터
2010 미국, 시카고
2009 독일, 베를린
2008 아르헨티나, 부에노스아이레스
2008 미국, 올랜도

같이 보기

각주

  1. ↑ “Release 5.4.3”. 2026년 10월 3일. 2026년 10월 3일에 확인함.
  2. ↑ “CakePHP Manual - CakePHP at a Glance”. 2015년 3월 9일에 확인함.
  3. ↑ “Contributors - cakephp”. 《cakephp.lighthouseapp.com》.
  4. ↑ “Introduction to CakePHP - 1.1”. 《book.cakephp.org》.
  5. ↑ “Cakephp:history_of_cakephp [Neurosciences]”. 2016년 3월 3일에 원본 문서에서 보존된 문서. 2012년 8월 31일에 확인함.
  6. 1 2 “Listing” (PDF). 《www.cs.colorado.edu》. 2019년 7월 1일에 확인함.
  7. ↑ “CakeForge”. 2009년 9월 8일에 원본 문서에서 보존된 문서. 2009년 9월 5일에 확인함.
  8. ↑ “TheChaw”. 2009년 9월 5일에 확인함.
  9. ↑ “The Cake is Still Rising”. 2010년 10월 10일에 원본 문서에서 보존된 문서. 2009년 10월 25일에 확인함.
  10. ↑ “Plugins”. 2020년 3월 13일에 확인함.
  11. ↑ “ORM”. 2020년 3월 13일에 확인함.
  12. ↑ “Query builder”. 2020년 3월 13일에 확인함.
  13. ↑ “Form helper”. 2020년 3월 13일에 확인함.
  14. ↑ “CakePHP 3: Bake by example”. 2010년 8월 31일. 2020년 3월 13일에 확인함.
  15. ↑ “Events”. 《cakefest.org》. 2024년 3월 21일에 확인함.

참고 자료

외부 링크