이미 소장하고 있다면 판매해 보세요.
|
1장. 플랫폼 구성의 이해
__기술 스택 __설계 레이어 __루트 파일시스템 구조 __모듈 파일시스템 구조 __요약 2장. 개발 환경 관리 __개발 환경 설치 ____버추얼박스 ____베이그런트 ____베이그런트 프로젝트 __라이브 서버 환경 설치 ____아마존 웹 서비스 소개 ____S3 사용 권한 설정 ____데이터베이스와 미디어 파일 백업을 위한 S3 설치 ____EC2 설치 자동화를 위한 Bash 스크립트 ____Elastic IP와 DNS 설정 __요약 3장. 프로그래밍 개념과 관례 __컴포저 __서비스 계약 __코드 생성 __var 디렉터리 __코딩 표준 __요약 4장. 모델과 컬렉션 __축소판 모듈 제작 __단순 모델 생성 __EAV 모델 __스키마와 데이터 스크립트의 흐름 이해 __설치 스키마 스크립트 작성(InstallSchema.php) __업그레이드 스키마 스크립트 작성(UpgradeSchema.php) __설치 데이터 스크립트 작성(InstallData.php) __업그레이드 데이터 스크립트 작성(UpgradeData.php) __엔티티 CRUD 작업 ____새로운 엔티티 생성하기 ____엔티티 불러오기 ____엔티티 수정하기 ____엔티티 삭제하기 __컬렉션 다루기 ____컬렉션 필터 __요약 5장. 의존성 주입 사용하기 __오브젝트 매니저 __의존성 주입 __클래스 프레퍼런스 관리 __가상 클래스 타입 사용하기 __요약 6장. 플러그인 __플러그인 만들기 __before 리스너 사용하기 __after 리스너 사용하기 __around 리스너 사용하기 __플러그인 정렬 순서 __요약 7장. 백엔드 개발 __크론잡 __알림 메시지 __세션과 쿠키 __로그 남기기 __프로파일러 __이벤트와 옵저버 __캐시 __위젯 __커스텀 변수 __i18n(internationalization, 국제화, 다언어 대응) __인덱서 __요약 8장. 프론트엔드 개발 __렌더링 플로우 __뷰 요소 ____UI 컴포넌트 ____컨테이너 ____블럭 __블럭의 구조와 생애 __템플릿 __XML 레이아웃 __테마 ____새로운 테마 생성하기 __자바스크립트 ____맞춤 JS 컴포넌트 생성하기 __CSS __요약 9장. 웹 API __사용자 타입 __사용자 인증 방법 __REST 대 SOAP __토큰 기반 사용자 인증 방식 따라 해보기 __OAuth 기반 사용자 인증 방식 따라 해보기 __OAuth 기반 웹 API 호출 __세션 기반 사용자 인증 방식 따라 해보기 __커스텀 웹 API 생성하기 __API 호출 예제 ____getById 서비스 메소드 호출 예제 ____getList서비스 메소드 호출 예제 ____save(새로 생성) 서비스 메소드 호출 예제 ____save(업데이트) 서비스 메소드 호출 예제 ____deleteById 서비스 메소드 호출 예제 __리스트 필터링을 위한 검색 기준 인터페이스 __요약 10장. 주요 기능 영역 __CMS 관리 ____블럭 직접 관리 ____코드를 통한 블럭 관리 ____API를 통한 블럭 관리 ____페이지 직접 관리 ____코드를 통한 페이지 관리 ____API를 통한 페이지 관리 __카탈로그 관리 ____카테고리 직접 관리 ____코드를 통한 카테고리 관리 ____API를 통한 카테고리 직접 관리 ____상품 직접 관리 ____코드를 통한 상품 관리 ____API를 통한 상품 관리 __고객 관리 __고객 직접 관리 ____코드를 통한 고객 관리 ____API를 통한 고객 관리 ____코드를 통한 고객 주소 관리 ____API를 통한 고객 주소 관리 __상품과 고객 불러오기 __커스텀 상품 타입 __커스텀 오프라인 배송 메소드 __커스텀 오프라인 결제 메소드 __요약 11장. 테스트 __테스트의 종류 __유닛 테스팅 __통합 테스팅 __정적 테스트 __통합성 테스트 __레거시 테스트 __성능 테스트 __기능 테스트 __간단한 유닛 테스트 작성하기 __요약 12장. 모듈 처음부터 만들기 __모듈 구현 요건 __모듈 등록하기 __설정 파일 생성하기(configxml) __이메일 템플릿 생성하기(email_templatesxml) __시스템 설정 파일 생성하기(systemxml) __액세스 컨트롤 리스트 생성하기(aclxml) __설치 스크립트 생성하기(InstallSchemaphp) __엔티티 영속화 관리하기(모델, 리소스, 컬렉션) __프론트엔드 인터페이스 만들기 ____라우트, 컨트롤러, 레이아웃 핸들 생성하기 ____블럭과 템플릿 생성하기 ____폼 전송 처리 __백엔드 인터페이스 만들기 ____액세스 컨트롤 리스트와 메뉴의 연결 ____라우트와 컨트롤러, 레이아웃 핸들 생성하기 ____그리드 위젯 활용하기 ____그리드 칼럼 렌더러 생성하기 ____그리드 칼럼 옵션 생성하기 ____컨트롤러 액션 생성하기 __유닛 테스트 생성하기 __요약 |
Branko Ajzele
|
마젠토로 상점을 만드는 일은 쉽지 않을 수 있다. PHP/자바스크립트 프로그래밍 언어 및 개발 서버와 라이브 서버 환경, 다양한 마젠토 특유의 기능과 관련된 굉장히 많은 양의 기술이 필요하다. 이 책은 마젠토의 구성 요소를 이해하는 데 필요한 통찰력을 제공할 것이다.
이 책을 끝까지 읽으면 설정 파일과 의존성 주입, 모델, 컬렉션, 블럭, 컨트롤러, 이벤트, 옵저버, 플러그인, 크론잡, 배송 모듈, 결제 모듈 및 기타 사항에 익숙해질 것이다. 이러한 지식은 앞으로의 개발 여정에서 단단한 기반이 돼 줄 것이다.' --- 지은이의 말 중에서 마젠토는 2008년 로이 루빈(Roy Rubin)에 의해 사이드 프로젝트로 시작됐으며 오픈소스로서 커뮤니티의 전폭적인 도움과 인기를 얻고 급성장했다. 2009년 이후, 오픈소스 전자상거래 솔루션으로 글로벌 시장 점유율 부동의 1위를 유지해왔다. 마젠토는 태생부터 엔터프라이즈급 솔루션을 지향해오고 강력한 어드민 기능 덕분에 온라인 상점을 진지하게 운영하려는 판매자에게 거부할 수 없는 매력을 느끼게 한다. 커뮤니티 에디션과 엔터프라이즈 에디션을 나눠서 비즈니스에서도 성공적인 모델을 확립했다. 이제는 사라진 마젠토 고와 같은 서비스도 있었으나 마젠토 2의 클라우드 서비스에서 다시 부활하려는 조짐을 보이고 있다. PHP가 아직 많이 모던하지 못하던 시절에도 마젠토는 코드의 구조와 체계의 추상화를 위해 나름 많은 고민을 한 흔적을 갖고 있다. 하지만 이제 PHP도 7 버전으로 넘어오고 많은 부분이 시대의 조류에 맞춰 개량돼 모듈화와 느슨한 커플링 등, 여러 추상화 개념이 언어 수준에서 구현됐다. 마젠토도 과거 직접 구현했던 시스템의 옷을 벗고 모던 PHP의 로켓에 올라탈 준비를 끝마쳤으니 그것이 바로 마젠토 2다. 마젠토는 한때 이베이(ebay)에 인수돼 여러 부문에서 이베이 에코 시스템과 통합되는 면을 보여줬으나, 칼 아이칸(Carl Icahn)의 이베이 분리에 의해 퍼미라(Permira) 펀드에 2015년 11월 매각됐고 비슷한 시기에 마젠토 2가 공개됐다. 이후 마젠토 2는 현재진행형 오픈소스로 깃허브(GitHub)에서 이슈 생성 및 풀 리퀘스트(Pull Request)가 가능하며 많은 이슈 포착 및 개선 프로세스가 오픈소스 에코 시스템의 장점을 그대로 따르고 있다. 물론 마젠토 2가 출시되고 시장 점유율이 모멘텀을 얻고 있긴 하지만 마젠토 1이 바로 죽은 것은 아니며 그럴 수도 없다. 마젠토 2가 출시된 날로부터 3년 동안은 마젠토 본사에서 지원해야 할 의무가 있기 때문이다. 마젠토 1의 공식 지원이 완료되는 시점은 2018년 11월 18일이다. 물론 이날 이후에도 마젠토 1은 사용할 수 있고 또 사설 지원 서비스가 인기를 얻겠지만 마젠토 본사로부터 보안 패치나 기능 개선을 기대할 순 없으니 미리 대비하는 것이 좋다. 마젠토 2의 많은 변화 가운데 사용자 입장에서 가장 눈에 띄는 부분은 어드민 관리 화면일 것이다. 마젠토 1에서 사용법을 이해하기 어렵다는 원성이 잦았는데 모던 스타일을 기반으로 직관적이고 보다 간편한 사용이 가능하도록 변경됐다. 개발자 입장에서는 컴포저의 도입과 의존성 주입 및 모듈 구조의 변화 등이 새롭게 느껴지겠지만 코어의 구조와 모듈화는 여전히 마젠토 1의 철학을 그대로 계승하고 있다. 마젠토는 마젠토 1에서부터 개발의 난해함과 생소함으로 악명이 높았다. 대부분 개발 자료가 영어로 돼 있어 접근성도 양호하지 못했다. 국내 기업들도 강력한 기능의 마젠토를 도입했지만 개발자 확보가 여의치 않아 프로젝트가 좌초되기 십상이었다. 마젠토는 여전히 국내 기업의 해외 진출에 주로 채택되는 것으로 보이지만 마젠토 개발자가 늘어나고 환경이 갖춰지면 얼마든지 국내 서비스에도 사용 가능하며 충분히 저력을 보여줄 것이라 믿는다. 이 책이 그러한 미래에 미력이나마 도움이 됐으면 한다. 이 책은 다년간 마젠토 개발을 해온 브랑코 아젤(Branko Ajzele)이 썼다. 현재 시중에 나온 마젠토 서적 가운데 가장 포괄적이고 깊이 있는 책이다. 마젠토 2의 전체 그림과 개발 흐름의 원리를 이해하고자 하는 개발자에게 큰 도움을 줄 것이라 믿어 의심치 않는다. --- 옮긴이의 말 중에서 |
|
이 책에서 다루는 내용
- 마젠토 2 개발 서버와 라이브 서버 설치하기 - 마젠토 2에서 새로 생긴 주요 개념과 관례 이해하기 - 축소판이지만 온전히 기능하는 모듈을 처음부터 만들어 전자상거래를 효율적으로 관리하기 - 모델과 컬렉션을 작성, 엔티티 데이터 관리하고 검색하기 - 이벤트와 옵저버, 크론잡, 로깅, 프로파일링, 메시지 기능 만들기 등 백엔드 개발에 뛰어들기 - 블럭과 템플릿, 레이아웃, 테마 등의 마젠토 2 프론트엔드 개발 핵심 이해하기 - 다양한 종류의 API 호출을 통한 토큰과 세션, OAuth 토큰 기반 인증 사용하기와 API 직접 만들기 - 개발을 통합하기 위해 마젠토 모듈과 커스텀 테마 테스트하는 법 이해하기 이 책의 대상 독자 이 책은 PHP 개발자 중에서 마젠토 2 개발에 흥미를 가진 중급부터 프로 레벨까지의 개발자를 주요 대상으로 한다. 백엔드 개발자를 위해 다수의 주제를 다루며, 이는 마젠토 2 상점을 수정하고 확장하는 데 도움을 줄 것이다. 프론트엔드 개발자 또한 온라인 상점의 외양을 커스텀하는 법을 배울 수 있을 것이다. 엄청난 양의 코드 변화와 구조 변화를 봤을 때, 마젠토 버전 2.x는 마젠토 버전 1.x와 완전히 다른 플랫폼으로 묘사할 수 있다. 이 책은 이러한 점을 염두에 두고 독자가 마젠토 1.x 버전에 대한 지식이 있을 거라는 가정 없이 서술하고 있다. 이 책의 구성 1장. '플랫폼 구성의 이해'에서는 기술 스택과 설계 레이어, 최고 수준 시스템 구성, 개별 모듈 구조에 대해 높은 수준으로 개요를 보여준다. 2장. '개발 환경 관리'에서는 개발 서버와 라이브 서버를 구축하기 위한 버추얼박스(Virtual box)와 베이그런트(Vagrant), 아마존 AWS 플랫폼을 소개한다. 한 단계 나아가 베이그런트와 아마존 EC2 박스를 설치하고 스크립트를 작성하는 실전 예제를 제공한다. 3장. '프로그래밍 개념과 관례'에서는 서로 관련 없어 보이지만 마젠토의 중요한 부분인 컴포저, 서비스 계약, 코드 생성, var 디렉터리 그리고 최종적으로 코딩 표준을 독자에게 소개한다. 4장. '모델과 컬렉션'에서는 모델과 리소스, 컬렉션, 스키마, 데이터 스크립트를 살펴본다. 또한 컬렉션 필터와 함께 엔티티에 적용되는 실용적인 CRUD 액션도 보여준다. 5장. '의존성 주입 사용하기'에서는 의존성 주입의 동작 원리를 가이드한다. 오브젝트 매니저 역할을 설명하고 클래스 프레퍼런스와 가상 타입의 사용법을 설명한다. 6장. '플러그인'에서는 강력하고 새로운 개념인 플러그인에 대한 상세한 통찰을 보여준다. before/after/around 리스너를 통해 이미 존재하는 기능을 확장하거나 추가하는 것이 얼마나 용이한지 보여준다. 7장. '백엔드 개발'에서는 백엔드 관련 개발로 간주되는 부분을 직접 경험한다. 크론잡, 알림 메시지, 세션과 쿠키, 로깅, 프로파일러, 이벤트, 캐시, 위젯 등이다. 8장. '프론트엔드 개발'에서는 프론트엔드 관련 개발로 간주되는 부분을 높은 수준의 접근 방식으로 가이드한다. 마젠토의 렌더링 플로우와 뷰 요소, 블럭, 템플릿, 레이아웃, 테마, CSS, 자바스크립트를 다룬다. 9장. '웹 API'에서는 마젠토가 제공하는 강력한 웹 API를 자세하게 다룬다. PHP cURL 라이브러리나 콘솔을 통해 REST와 SOAP을 모두 생성하고 사용하는 실전 예제를 보여준다. 10장. '주요 기능 영역'에서는 마젠토의 가장 보편적인 부분을 독자에게 높은 수준의 접근 방식으로 소개한다. CMS와 카탈로그, 고객 관리, 상품과 고객 불러오기 등을 포함한다. 이에 더해 커스텀 상품 타입과 배송 모듈 및 결제 모듈 만드는 법도 보여준다. 11장. '테스트'에서는 마젠토에서 사용 가능한 테스트 타입의 개요를 보여준다. 또한 커스텀 테스트를 작성, 실행하는 법도 보여준다. 12장. '모듈 처음부터 만들기'에서는 모듈을 개발하는 전체 프로세스를 보여주고 책 전체에서 배웠던 대부분의 요소를 사용한다. 최종 결과는 어드민 인터페이스와 상점 인터페이스를 갖추고, 어드민 설정 영역, 이메일 템플릿, 설치 스키마 스크립트, 테스트 등을 포함한다. |