맨위로가기

CakePHP

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

1. 개요

CakePHP는 PHP로 작성된 오픈 소스 웹 애플리케이션 프레임워크이다. 2005년 미칼 타타리노비치가 개발하여 공개 도메인 라이선스로 시작되었으며, 이후 MIT 라이선스로 변경되었다. 모델-뷰-컨트롤러(MVC) 아키텍처를 기반으로 하며, 플러그인, 객체 관계 매핑(ORM), 쿼리 빌더, 라우팅, 폼 빌더, 보안 기능 등을 제공한다. CakePHP는 매년 여러 국가에서 콘퍼런스를 개최하며, CakeDC에서 후원하는 공식 온라인 교육 과정도 제공된다.

더 읽어볼만한 페이지

  • 고속 개발 도구 - 크로스 플랫폼
    크로스 플랫폼은 소프트웨어나 애플리케이션이 다양한 운영 체제, 하드웨어 플랫폼 또는 이들의 조합에서 동작할 수 있도록 하는 기술을 의미하며, 웹 애플리케이션 형태로 구현되거나 플랫폼 연동을 통해 하드웨어 경계를 넘어 콘텐츠를 즐길 수 있도록 한다.
  • 고속 개발 도구 - LabVIEW
    LabVIEW는 내쇼날 인스트루먼트에서 개발한 그래픽 기반 프로그래밍 환경으로, 시각적인 블록 다이어그램을 사용하여 데이터 수집, 계측기 제어, 자동화 시스템 구축 등에 활용되며 사용자 인터페이스 생성 통합, 병렬 프로그래밍 지원, 다양한 디자인 패턴 제공을 통해 복잡한 애플리케이션 개발을 돕는다.
  • PHP로 작성된 자유 소프트웨어 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • PHP로 작성된 자유 소프트웨어 - 워드프레스
    워드프레스는 PHP로 작성된 자유-오픈 소스 콘텐츠 관리 시스템으로, 테마와 플러그인을 통해 디자인 변경 및 기능 확장이 용이하며, 다양한 웹사이트 구축 및 관리를 지원하는 설치형/가입형 플랫폼이다.
  • 웹 프레임워크 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • 웹 프레임워크 - 실버스트라이프 CMS
    실버스트라이프 CMS는 PHP로 제작된 오픈 소스 콘텐츠 관리 시스템으로, 웹사이트 및 웹 애플리케이션을 개발하고 관리하는 데 사용되며, MVC 패턴과 Sapphire ORM 프레임워크를 활용하여 사용자 친화적이고 확장 가능한 플랫폼을 제공한다.
CakePHP - [IT 관련 정보]에 관한 문서
기본 정보
CakePHP 로고
CakePHP 로고
개발자Cake Software Foundation, Inc.
출시일2005년 4월
최신 안정화 버전5.0.4
최신 안정화 버전 출시일2023년 12월 28일
프로그래밍 언어PHP
운영체제크로스 플랫폼
플랫폼PHP 8.1+
언어다국어
장르웹 프레임워크
라이선스MIT 라이선스
웹사이트공식 웹사이트

2. 역사

CakePHP는 2005년 4월 폴란드의 프로그래머 미칼 타타리노비치가 PHP로 신속 애플리케이션 개발 프레임워크의 최소 버전을 작성하고 'Cake'라고 명명하면서 시작되었다.[2][3][4][5] 그는 이 프레임워크를 퍼블릭 도메인 라이선스로 배포했으며, 이후 MIT 라이선스로 변경하여 온라인 개발자 커뮤니티에 공개했다.

2005년 12월, L. Masters와 G. J. Woodworth는 CakePHP 관련 개발을 촉진하기 위해 Cake Software Foundation을 설립했다.[5] 2006년 5월에는 CakePHP 1.0 버전이 출시되었다.

CakePHP는 Ruby on Rails의 영향을 받아 많은 개념을 차용했으며, 이후 커뮤니티가 성장하여 여러 하위 프로젝트가 파생되었다.[6][7]

2009년 10월, 프로젝트 매니저였던 Woodworth와 개발자 N. Abele은 Lithium 웹 프레임워크 개발에 집중하기 위해 프로젝트에서 사임했다. 나머지 개발팀은 기존에 정의된 로드맵에 따라 개발을 계속 진행했다.[8]

CakePHP는 2009년부터 2017년까지 일본에서 가장 인기 있는 PHP 프레임워크였으며,[16] 2020년 1월 현재 일본에서 가동 중인 웹사이트 수는 Laravel을 능가하며 세계에서 가장 많다는 조사 결과가 있다.[17][18]

2. 1. 버전 역사

CakePHP는 메이저 버전, 마이너 버전, 업데이트 버전으로 구성된 릴리스 체계를 가지고 있다.[8]

  • 메이저 버전: 아키텍처 변경 등을 관리한다.
  • 예) CakePHP 1 → 2 (PHP4 지원 종료, PHP5 전용).
  • 예) CakePHP 2 → 3 (PHP5.4 이상 전용, 네임스페이스 사용, 모델이 배열이 아닌 객체를 반환).
  • 마이너 버전: 신기능 추가 등을 관리하며, 기본적으로 신기능을 사용하지 않으면 같은 메이저 버전 내에서 호환성을 가진다.
  • 예) CakePHP 2.0 → 2.1 (뷰 클래스의 기능 확장, 콜백을 대신하는 이벤트 매니저 도입).
  • 업데이트 버전: 버그 수정이나 성능 개선을 관리한다.[8]

2. 1. 1. CakePHP 1.2

CakePHP 1.2는 2008년 12월 25일에 출시되었으며, PHP 4.3.2 이상 및 PHP 5 이상을 지원한다.[19]

주요 변경 사항은 다음과 같다:[19]

  • 모든 클래스에 대한 테스트 강화 및 코드 커버리지 향상
  • 커맨드 라인에서 애플리케이션을 실행할 수 있는 셸(Shell) 기구 도입
  • i18n (국제화) 및 l10n (지역화) 지원
  • 유니코드 문자열 지원
  • CSRF 대책 도입
  • 모델 내 메서드를 재사용할 수 있게 하는 비헤이비어(Behavior) 기능 도입
  • 다중 유효성 검사 지원 및 내장 유효성 검사 규칙 증가 등 유효성 검사 강화
  • DB2, Oracle Database 지원
  • APC/XCache/Memcache 지원
  • 개발 시 백트레이스 및 뷰 변수를 에러와 함께 표시하는 등 더 상세한 에러 표시 기능 제공
  • 페이지 분할 및 정렬을 가능하게 하는 Pagination 기능 추가
  • Html 헬퍼의 비대화 해소를 위해 폼 관련 기능을 Form 헬퍼로 이전
  • Configure 클래스를 통해 애플리케이션 전체 설정 정의
  • App 클래스를 통해 외부 파일 읽기
  • 뷰 파일 확장자가 ".thtml"에서 ".ctp"로 변경

2. 1. 2. CakePHP 1.3

CakePHP 1.3은 2010년 4월 24일에 출시되었으며, PHP 4.3.2 이상 및 PHP 5 이상을 지원한다.[8]

2. 1. 3. CakePHP 2.x

버전출시일PHP 버전 지원
CakePHP 2.02011년 10월 16일PHP 5.2.6 이상
CakePHP 2.12012년 3월 5일PHP 5.2.8 이상
CakePHP 2.22012년 7월 1일PHP 5.2.8 이상
CakePHP 2.32013년 1월 28일PHP 5.2.8 이상
CakePHP 2.42013년 8월 30일PHP 5.2.8 이상
CakePHP 2.52014년 5월 13일PHP 5.2.8 이상
CakePHP 2.62014년 12월 23일PHP 5.2.8 이상
CakePHP 2.72015년 7월 12일PHP 5.3.0 이상


2. 1. 4. CakePHP 3.x

CakePHP 3.x 버전의 주요 변경 사항 및 출시 정보는 다음과 같다.

버전출시일PHP 버전 지원주요 변경 사항
3.02015년 3월 22일[20]5.4.16 이상
3.12015년 9월 20일5.4.16 이상
3.22016년 1월 29일5.5.9 이상
3.32016년 8월 12일5.5.9 이상
3.42017년 2월 12일5.6.0 이상
3.52017년 8월 18일[21]5.6.0 이상
3.62018년 4월 14일[22]5.6.0 이상
3.72018년 12월 8일[23]5.6.0 이상
3.82019년 6월 26일[24]5.6.0 이상
3.92020년 6월 21일5.6.0 이상2022년 12월 15일까지 보안 수정 지원[25]


2. 1. 5. CakePHP 4.x

버전출시일지원 PHP 버전
CakePHP 4.02019년 12월 15일[26]PHP 7.2.0 이상
CakePHP 4.12020년 7월 5일PHP 7.2.0 이상
CakePHP 4.22020년 12월 21일PHP 7.2.0 이상 (PHP 8 완전 지원)
CakePHP 4.32021년 10월 24일PHP 7.2.0 이상
CakePHP 4.42022년 6월 7일PHP 7.4.0 이상


3. 특징

CakePHP는 다음과 같은 특징을 갖는다.


  • MVC 아키텍처를 기반으로 하여 코드 구성 및 유지보수가 용이하다.
  • 높은 하위 호환성을 제공하며, 공식 마이그레이션 가이드 및 Upgrade shell을 통해 하위 버전에서의 업그레이드를 지원한다.
  • 통합적이고 유연한 O/R 매핑을 제공하며, MySQL, PostgreSQL, SQLite, Microsoft SQL Server를 표준 지원한다.
  • 내장된 폼 유효성 검사 기능을 통해 데이터의 정확성을 보장한다.
  • XSS 및 CSRF 공격 방지, 폼 변조 감지 등 다양한 보안 기능을 제공한다.
  • 리퀘스트 디스패처를 통해 사용자 정의 URL을 구현할 수 있다.
  • PEAR 등 외부 라이브러리에 의존하지 않고 단독으로 사용할 수 있다.
  • 유연한 뷰 기구를 제공하며 템플릿 상속 및 확장, 페이지 및 부품 단위 캐시를 지원한다.

3. 1. 주요 기능 (Features)

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

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

쿼리 빌더는 새로운 ORM과 함께 CakePHP 3에 도입되었다. 쿼리 빌더는 SQL 쿼리를 직접 작성하는 대신 프로그래밍 방식으로 SQL 쿼리를 빌드하기 위한 클래스 및 메서드 집합을 제공한다. ORM은 쿼리 빌더를 광범위하게 사용한다.[11]

라우팅 및 역 라우팅. CakePHP 라우터는 복잡한 HTTP 애플리케이션 라우팅을 허용하여 들어오는 요청을 올바른 컨트롤러 및 액션으로 라우팅한다. 역 라우팅은 라우트와 링크 간의 관계를 생성하여 링크가 항상 올바른 URL로 생성되도록 한다.

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

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

자동 페이지 매김을 통해 개발자가 ORM 또는 쿼리 빌더에서 생성된 결과 집합을 쉽게 페이지 매김할 수 있다.

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

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

  • MVC 아키텍처.
  • 높은 하위 호환성.
  • 하위 버전에서 업그레이드를 지원하는 공식 마이그레이션 가이드 및 Upgrade shell.
  • 통합적이고 유연한 O/R 매핑.
  • MySQL, PostgreSQL, SQLite, Microsoft SQL Server를 표준 지원.
  • 폼 유효성 검사 기능.
  • 보안 대책 기능 (XSS 대책, CSRF 대책, 폼 변조 감지).
  • 커스텀 URL을 실현하기 위한 리퀘스트 디스패처.
  • PEAR 등 외부 라이브러리에 의존하지 않아 단독으로 사용 가능.
  • 필요한 라이브러리를 그때그때 이용할 수 있는 임포트 기능.
  • 플러그인을 통한 기능 확장.
  • 유연한 뷰 기구.
  • 템플릿의 상속 및 확장.
  • 페이지 단위 및 부품 단위의 캐시.
  • Composer 표준 지원 (버전 3 이후).

4. 콘퍼런스

CakePHP는 매년 다양한 국가에서 콘퍼런스를 개최하여 개발자 커뮤니티의 교류를 지원한다.[14]


5. 트레이닝

CakeDC에서 후원하는 공식 온라인 교육 과정은 다음과 같다.

교육 과정
CakePHP 2 표준 교육 과정
CakePHP 3 표준 교육 과정
CakePHP 3 고급 교육 과정
CakePHP 4 표준 교육 과정


6. 발음

일본에서는 "케이크피에이치피"라고 읽는 경우가 많다.[16]

참조

[1] 웹사이트 CakePHP Manual - CakePHP at a Glance http://book.cakephp.[...] 2015-03-09
[2] 웹사이트 Contributors - cakephp https://cakephp.ligh[...]
[3] 웹사이트 Introduction to CakePHP - 1.1 https://book.cakephp[...]
[4] 웹사이트 Cakephp:history_of_cakephp [Neurosciences] https://web.archive.[...] 2012-08-31
[5] 웹사이트 Listing http://www.cs.colora[...] 2019-07-01
[6] 웹사이트 CakeForge https://web.archive.[...] 2009-09-05
[7] 웹사이트 TheChaw http://thechaw.com 2009-09-05
[8] 웹사이트 The Cake is Still Rising https://web.archive.[...] 2009-10-25
[9] 웹사이트 Plugins https://book.cakephp[...] 2020-03-13
[10] 웹사이트 ORM https://book.cakephp[...] 2020-03-13
[11] 웹사이트 Query builder https://book.cakephp[...] 2020-03-13
[12] 웹사이트 Form helper https://book.cakephp[...] 2020-03-13
[13] 웹사이트 CakePHP 3: Bake by example https://www.codefore[...] 2010-08-31
[14] 웹사이트 Events https://cakefest.org[...] 2024-03-21
[15] 웹사이트 Release CakePHP 5.0.4 released · cakephp/cakephp · GitHub https://github.com/c[...] 2024-01-03
[16] 웹사이트 [PHPウォッチ]第38回 人気フレームワークCakePHP,国内初のカンファレンス開催 https://xtech.nikkei[...] 日経BP 2009-01-27
[17] 웹사이트 ==Top Websites Using CakePHP/cakephp https://www.similart[...] 2020-01-28
[18] 웹사이트 ==Top Websites Using Laravel/laravel https://www.similart[...] 2020-01-28
[19] 웹사이트 http://bakery.cakeph[...]
[20] 웹사이트 "「CakePHP 3.0」リリース、ORMを刷新" https://osdn.jp/maga[...] OSDN Corporation 2015-03-24
[21] 웹사이트 CakePHP 3.5.0 Released https://bakery.cakep[...] CakePHP 2017-08-18
[22] 웹사이트 CakePHP 3.6.0 Released https://bakery.cakep[...] CakePHP 2018-04-14
[23] 웹사이트 CakePHP 3.7.0 Released https://bakery.cakep[...] CakePHP 2018-12-08
[24] 웹사이트 CakePHP 3.8.0 Released https://bakery.cakep[...] CakePHP 2019-06-26
[25] 웹사이트 3.x Maintenance Mode https://github.com/c[...] 2021-01-26
[26] 웹사이트 CakePHP 4.0.0 Released https://bakery.cakep[...] CakePHP 2019-12-15
[27] 웹인용 CakePHP 5.0.7 Released https://bakery.cakep[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com