저는 대학원생 때 웹 엔지니어 과정을 수강했습니다. 당시 과정은 페이스북과 유사한 소셜 네트워킹 사이트를 개발하기 위한 java servlet + Tomcat + Mysql이었습니다. 강의를 해주신 선생님께서 프레임워크에 대해 언급하시며, 프레임워크의 목적은 조기 로테이션 시간을 줄이는 것이라고 말씀하셨습니다. 프레임워크를 배우는 데 드는 비용은 문서를 읽는 것인데, 배우고 탐색하는 데 보통 한 달이 걸립니다. 하지만 맨손으로 블록을 쌓는 것은 멋지고 굉장하다고 생각합니다.
처음 일을 시작한 2015년 초에 프레임워크를 접하게 됐어요. 당시 NXP 인턴 시절 들었던 프레임워크인 Cakephp를 사용했습니다. Cake의 초기 아이디어는 마이그레이션, 명령줄 등 RoR(Ruby on Rails)을 100% 상속하는 것이었습니다. 물론, 비판받는 것은 관계형 데이터베이스를 선호하는 Cake의 데이터 캡슐화 모델입니다. Cakephp는 Lavare만큼 잘 알려져 있지는 않지만 핵심 개발자, 커뮤니티 활동, Q&A 커뮤니티에서는 여전히 많은 질문이 있습니다.
웹사이트 구축이 처음인 사람들에게 Cakephp는 개발 효율성이 매우 높고 확장도 쉽습니다. 그리고 건축가가 되고 싶은 마음을 갖고 있는 어린이들에게는 Cakephp 핵심 코드를 읽는 것의 학습 가치가 매우 높다고 개인적으로 생각합니다. 초기 단계에서는 Cakephp로 캡슐화된 API를 사용하여 일반 MVC 프레임워크의 기본 모듈과 기능을 이해할 수 있습니다. 고급 과정에서는 핵심 코드를 읽고 디자인 원칙을 이해합니다. 마지막으로 코드를 최적화하여 통합 지점에 도달합니다. 초보 phper로서 저자도 개발에 열중하고 있으며 이 글을 읽고 여러분과 함께 발전할 수 있는 모든 사람에게 내 생각과 아이디어를 제공하고 싶습니다.
이 시리즈는 주로 Cakephp 3 Cookbook 번역에 초점을 맞춰 개발 프로젝트 과정에서 Cakephp 3를 사용한 경험을 중심으로, Cakephp 3의 특징을 소개하는 내용을 삽입했습니다. 나는 Cakephp 3를 소개하고 번역함으로써 Cakephp에 작은 기여를 하고 싶습니다. 또한 이 시리즈를 통해 같은 생각을 가진 친구들을 알게 되기를 바랍니다.
자세히 설명하기 전에 Cakephp 3의 몇 가지 기능에 대해 빠르게 이야기해 보겠습니다.
1) 명명 규칙
RoR, Django 및 기타 프레임워크와 마찬가지로 Cake는 완전한 MVC 규칙 이름 세트를 제공합니다. 네이밍 컨벤션을 이용하면 Cake에서 제공하는 일부 기능을 편리하게 사용할 수 있습니다. 프로젝트 종료 후 코드 유지 관리에도 도움이 됩니다. 개발 프로세스에서 명명 규칙은 개발 효율성을 높이는 데 도움이 됩니다.
2) 데이터 레이어(모델)
Cakephp 2에 비해 Cakephp 3의 데이터 레이어가 대폭 개선되었습니다. MYSQL, PostgreSQL, Microsoft SQL Server, SQLite 등을 지원할 뿐만 아니라 ORM은 두 가지 다른 데이터 CRUD API도 제공합니다. 사용자는 기본 SQL 문을 사용하여 데이터베이스를 호출하고 쿼리를 유연하게 처리할 수 있습니다. 엔터티 처리 클래스는 데이터를 안전하게 처리하는 데 사용할 수 있는 캡슐화된 API 세트를 제공합니다.
3) 뷰 레이어(Views)
뷰 레이어는 기본적인 데이터 표현을 제공합니다. 템플릿과 확장 모듈은 코드를 효율적으로 단순화하여 프런트엔드 코드를 더욱 간결하고 재사용 가능하게 만듭니다. 동시에 뷰 계층은 XML, JSON 및 기타 리소스를 포함하여 완전한 RESTFUL 애플리케이션을 제공하며 이는 URI 형식으로 웹 사이트에 웹 서버를 제공할 수 있습니다.
4) 컨트롤 레이어(Controllers)
컨트롤 레이어는 핵심 로직 레이어로서 데이터 레이어와 뷰 레이어를 효과적으로 결합합니다. 이 계층에서는 중요한 알고리즘 처리를 구현하고 개선할 수 있습니다.