장바구니 담기 close

장바구니에 상품을 담았습니다.

코드이그나이터 MVC 프로그래밍

코드이그나이터 MVC 프로그래밍

  • 엘리 오르
  • |
  • 에이콘출판
  • |
  • 2013-12-30 출간
  • |
  • 232페이지
  • |
  • 188 X 235 X 20 mm /584g
  • |
  • ISBN 9788960775060
판매가

22,000원

즉시할인가

19,800

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
19,800

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 요약 ★

코드이그나이터는 PHP 기반의 MVC 프레임워크로 사용이 간편하고 탁월한 성능으로 인해 많은 관심을 받고 있다. 이 책은 코드이그나이터의 다양한 컴포넌트에 대해 설명한다. 일반적인 MVC 구조의 핵심을 이루는 모델, 뷰, 컨트롤러에 대해 자세히 다루며 이와 함께 라이브러리, 헬퍼에 대한 자세한 정보를 제공한다. 책 속에 있는 다양한 예제는 각 컴포넌트를 사용하는 방법을 보여준다. 페이스북, 플리커 같은 외부 API 사용법부터 jQuery/AJAX 연동 예제까지, 실제 개발에도 유용하게 참고할 수 있는 예제를 수록했다.

★ 이 책에서 다루는 내용 ★

■ 코드이그나이터 설치, 각 리소스 디렉토리 익히기
■ 자신만의 첫 웹 애플리케이션 개발
■ 자신만의 코드이그나이터 라이브러리 정의
■ 코드이그나이터 컨트롤러 메소드를 이용한 AJAX 호출 처리
■ 컨트롤러, 헬퍼 사용법
■ 코드이그나이터 명명 규칙
■ 모델을 통한 데이터베이스 접근법, 헬퍼를 이용한 그 밖의 리소스 사용법

★ 이 책의 대상 독자 ★

이 책은 객체지향 MVC 개념과 코드이그나이터 플랫폼을 이용해 PHP 웹 애플리케이션을 작성하는 데 관심이 있는 PHP 웹 개발자를 위해 쓰여졌다. 이 책의 내용을 이해하려면 최소한 PHP 프로그래밍, 특히 PHP 객체지향 프로그래밍과 MySQL에 대한 어느 정도의 지식이 있어야 한다.

★ 이 책의 구성 ★

1장 ‘시작’에서는 웹 기반 애플리케이션과 함께 코드이그나이터 프레임워크를 소개한다.

2장 ‘설정과 명명 규칙’에서는 여러 예제와 함께 CI 프로젝트 내에서 필수적인 설정과 사용법, 옵션과 함께 CI의 이름 명명 규칙, 스타일, 철학 등을 살펴본다.

3장 ‘컨트롤러 사용법과 유효 범위'에서는 CI의 컨트롤러와 CI 컨트롤러를 확장한 사용자 정의 컨트롤러를 살펴본다. 명확한 설명을 위해 여러 예제와 함께 CI 컨트롤러 클래스의 서비스, 역할, 정의, 사용법, 범위 등을 살펴본다.

4장 ‘라이브러리’에서는 CI 프레임워크상의 라이브러리를 살펴본다. 라이브러리의 역할, 정의, 사용법, 범위 등을 여러 예제와 함께 학습한다. 라이브러리를 정의하고 사용하는 방법을 보여주는 예제를 보여준다.

5장 ‘헬퍼’에서는 CI 헬퍼와 사용자 정의 헬퍼의 재사용 가치, 정의 규칙, 유효 범위, 사용법 등을 소개한다. 헬퍼를 정의하고 사용하는 방법을 다룬 예제를 제공한다.

6장 ‘모델’에서는 CI 모델과 사용자 정의 모델의 재사용 가치, 정의 규칙, 범위, 사용법 등을 다룬다. 모델을 정의하고 CI 모델을 확장, 사용하는 방법을 보여준다.

7장 ‘뷰’에서는 클라이언트 측에서 시각적인 화면을 생성하고 HTTP를 통해 사용자와 상호작용하는 CI의 뷰 개념을 설명한다. PHP에서의 뷰와 그 범위, 시각적인 컨텐츠(HTML/CSS), 그리고 클라이언트 브라우저를 위한 프로그램(JavaScript/AJAX/jQuery)을 설명한다. 이 뷰의 유효 범위와 정의, 그리고 컨트롤러를 이용한 그리기를 할 때 필요한 실제적인 방법과 요령을 이 장에서 다룬다.

부록에서는 개발자 커뮤니티 환경을 비롯해, 코드이그나이터 자료와 관련된 추천 외부 자료를 제시한다.

★ 저자 서문 ★

이 책은 엘리스 랩(Ellis Labs)의 코드이그나이터 플랫폼상에서 웹 애플리케이션을 효율적으로 개발하는 법을 가르치는 데 목표를 두고 있다. 코드이그나이터는 객체지향적 모델-뷰-컨트롤러(MVC, Model-View-Controller) 개발 플랫폼이다. MVC에 대한 더 자세한 사항은 http://en.wikipedia.org/wiki/Model-viewcontroller를 참고하라. 이 책을 쉽게 이해하려면 최소한 PHP 프로그래밍 언어, 그중에서도 PHP 객체지향 프로그래밍(PHP OOP)과 그 사용 방법, 그리고 MySQL과 친숙해야 한다.

코드이그나이터(이 책에서는 주로 CI라고 부른다)는 애플리케이션 개발 플랫폼으로서 PHP를 사용해 웹사이트와 웹 애플리케이션을 개발하는 사람들을 위한 도구다. 코드이그나이터는 영리한 애플리케이션 개발 프레임워크로, 고성능과 적은 용량이 뒷받침하는 유연하고도 확장 가능한 핵심부를 갖고 있다. 코드이그나이터는 OSL 3.0 오픈소스 라이선스를 지원하며, 엘리스 랩이 개발, 관리하며 전 세계의 개발자들이 참여하는 강력한 생태계로 이뤄져 있다. 코드이그나이터의 첫 공개 버전은 2006년 2월 28에 나왔으며, 웹 애플리케이션 개발자들로부터 매우 좋은 반응을 얻었다. 2010년 11월에는 유명한 깃허브(GitHub) 커뮤니티 프로젝트에서 코드이그나이터 개발 프로젝트를 추가하면서 점점 더 많은 전 세계 개발자들의 관심을 얻고 있으며, 이에 따라 더 정교하고 더 많은 기능을 가진 애드온을 제공하는 사람들이 나타났다.

잠시 뒤 소개하겠지만, 고급 웹 애플리케이션을 개발하는 데 있어 MVC 개발 패턴과 객체지향 개발 프레임워크에 기반한 웹 개발 트렌드가 점점 더 강해지고 있다. 코드이그나이터가 바로 그런 프레임워크다. 코드이그나이터가 갖고 있는, 작지만 고성능의 OOP 핵심부로 인해 코드이그나이터의 인기는 점점 상승하고 있다. 이 OOP 핵심부를 이용해서 독창적이고 재사용 가능하며 명확한 명명 규칙(naming conventions)을 가진 애플리케이션을 만들 수 있다. 또한 사용자 클래스가 CI 클래스를 상속하기 때문에 이 모든 기능을 확장하는 작업도 매우 용이하다. 이와 함께 점점 더 많은 애플리케이션 플러그인과 추가 라이브러리들이 이용 가능해지고 있다(여기에는 CMS나 쇼핑 카트, 테이블 데이터 내비게이터 같은 애플리케이션 위주 솔루션에서 사용할 수 있는 뷰/컨트롤러/모델/라이브러리/헬퍼 등이 포함된다).

MVC라는 개념은 정보의 표현과 이 정보와 상호작용하는 사용자를 분리하는 사용자 인터페이스를 지원하는 애플리케이션 프레임워크 혹은 개발 패턴을 의미한다. 그동안 성공적인 웹 애플리케이션 개발에서 MVC를 개발 구조로 채택해왔다. 모델(Model)은 애플리케이션 데이터로 구성하며 이를 조작하는 서비스를 제공한다. 컨트롤러(Controller)는 주로 웹 브라우저를 이용하는 사용자로부터 받아들이는 입력을 처리한다. 그리고 이 웹 브라우저가 뷰를 출력한다. 브라우저는 컨트롤러로부터 HTTP 프로토콜을 통해 이미 렌더링한 뷰를 전달받아 출력한다. 컨트롤러가 애플리케이션의 심장이다. 이 컨트롤러가 모델/데이터베이스 업데이트, 비즈니스 관련 계산을 수행하고, 뷰를 그려서 사용자에게 보여주며, 또한 클라이언트가 보낸 AJAX(Asynchronous JavaScript and XML) 비동기 요청을 처리한다. 뷰(View) 코드는 사용자 입력 로직과 표현할 대상을 정의한다. 컨트롤러는 이를 HTML과 자바 스크립트의 형태로 브라우저에게 제공해 그리게 한다. 브라우저는 이 뷰 코드를 HTTP 응답을 통해 전달받아 직접 렌더링한다. 이 컨텐츠를 실행하는 브라우저는 텍스트, 차트, 다이어그램, 이미지가 섞인 데이터를 사용자에게 제공한다.

드루팔(DRUPAL) 같은 오래된 CMS(Content Management System, 컨텐츠 관리 시스템)처럼 CMS의 기능성과 관리에 중점을 둔 기존의 웹 개발 플랫폼도 있다. 컨텐츠 중심의 프로젝트에서는 이런 플랫폼이 매우 유용할 수도 있다. 하지만 프로젝트가 새로운 많은 기능을 개발해야 하는 경우, 즉 많은 입력과 특화된 UI 동작이 필요한 웹 애플리케이션을 만들어야 하는 경우에는 이런 플랫폼이 그다지 매력적이지 못하다. 프로젝트의 요구사항이 작은 용량과 빠른 반응성과 고성능을 요구한다면 코드이그나이터가 훌륭한 결과를 보여줄
수 있다.

그러므로 유연성, 코드 재사용, 가벼운 기반구조, 개발자의 창의력 발휘, 명확한 코드, 고성능, 최소한의 용량, 빠른 학습 곡선의 관점에서 요약하자면 코드이그나이터가 최상의 선택으로 보인다. 더욱이 점점 더 커지고 있는 전 세계적인 개발자 커뮤니티 덕분에 언제나 활발한 개선 작업이 이뤄진다는 장점도 있다.

★ 옮긴이의 말 ★

이 책은 최근 PHP 개발자들에게 많은 각광을 받고 있는 코드이그나이터 프레임워크에 관한 서적이다.

코드이그나이터 프레임워크는 최근 유행하는 MVC 구조를 채택하고 있다. 명시적으로 컨트롤러, 모델, 뷰의 구조를 사용하며, 그 외 라이브러리와 헬퍼라는 지원 시스템을 통해 내, 외부에 존재하는 리소스를 참조한다.

또한 이 책은 많은 유용한 예제를 제공한다. 예를 들어 페이스북, 플리커닷컴(flickr.com) 같은 유명한 소셜 네트워크와 연동하는 예제는 실제 웹사이트 구축 시에 많은 참고가 되리라 생각한다.

이 책의 예제를 무리 없이 사용하려면 먼저 최소한의 웹 서버와 데이터베이스를 설정할 수 있어야 한다. 저자가 사용하는 MySQL과 phpMyAdmin을 사용하길 권하며(PHP는 물론 기본 사항이다), 간단한 웹 서버, PHP.ini, 데이터베이스 서버에 관한 기본적인 설정을 할 수 있으면 좋다.

각 장에서 예제를 실행하는 데 필요한 설정 사항을 간단하게나마 각주로 밝혀놓았으니 서버 설정 연습도 할 겸 참고하기 바란다.

모쪼록 이 책을 통해 코드이그나이터에 대해 많은 정보를 얻길 기원한다.

목차

1장 시작
___코드이그나이터 설치
___CI 폴더 살펴보기
_________필수 요소
______예제 1: Hello World
_________컨트롤러 파일
_________뷰 파일
______예제 2: 복잡한 매개변수를 뷰에 전달하기
_________컨트롤러 파일
_________뷰 파일
______예제 3: 모델을 이용해 데이터베이스에 질의한 후 그 결과를 뷰에 렌더링하기
_________컨트롤러 파일
_________모델 파일
_________뷰 파일
______예제 4: 대화형 연락처 폼
_________컨트롤러 파일
_________뷰 파일
___정리

2장 설정과 명명 규칙
___CI 디렉토리 구조
_________config.php
_________database.php
_________routes.php
___자신만의 설정 정의와 사용
___CI 명명 규칙의 이해와 사용
_________주요 리소스 명명 규칙
____________컨트롤러 정의 명명 규칙
______예제 1: 컨트롤러의 index 메소드 호출
______예제 2: 매개변수 없이 컨트롤러의 calc 메소드 호출하기
______예제 3: 매개변수와 함께 컨트롤러 메소드 호출하기
______예제 4: AJAX를 통해 AJAX 처리 메소드를 매개변수와 함께 호출하기
____________라이브러리, 모델, 헬퍼 로딩
___그 밖의 명명 규칙
___정리

3장 컨트롤러 사용법과 유효 범위
___CI 컨트롤러의 유효 범위
___사용자 정의 CI 컨트롤러
_________CI 컨트롤러 확장
___CI 컨트롤러 사용 예
______예제 1: 기본 홈페이지 컨트롤러
_________컨트롤러 파일
_________뷰 파일
_________설정 파일
______예제 2: 첨부파일과 함께 이메일 전송하기
_________컨트롤러 파일
______예제 3: 관리자와 일반 사용자 로그인
_________컨트롤러 파일
_________모델 파일
_________예제를 위해 데이터베이스에 업로드할 SQL 파일
_________login_view 파일
_________login_in_view 뷰 파일
___정리

4장 라이브러리
___CI 라이브러리의 유효 범위와 사용법
_________사용 가능한 CI 라이브러리
______예제 1: 내장 라이브러리 사용
_________컨트롤러 파일
_________뷰 파일
______예제 2: 구글 맵 CI 라이브러리 래퍼 사용
_________컨트롤러 파일
_________뷰 파일
______예제 3: 플리커 AIP 래퍼 라이브러리 구축
_________flickr_wrapper.php 라이브러리 파일
_________flickr_recent.php 컨트롤러 파일
_________flickr_recent_view.php 뷰 파일
______예제 4: 링크드인 API 래퍼 구축
_________프로젝트 요구사항
_________인증 흐름
_________linkedin_handler.php 라이브러리 파일
_________linkedinfo.php 컨트롤러 파일
_________linkedin-me.php 뷰 파일
___정리

5장 헬퍼
___CI 헬퍼의 유효 범위와 사용법
_________사용 가능한 CI 헬퍼
____________CI 시스템 내장 헬퍼
____________CI 제3자 헬퍼
______예제 1: 내장 헬퍼 사용
_________컨트롤러 파일
_________뷰 파일
______예제 2: 제3자 헬퍼 사용(SSL 헬퍼)
_________헬퍼 파일
_________컨트롤러 파일
_________뷰 파일
______예제 3: 자신만의 헬퍼 구축(my_download 헬퍼)
_________헬퍼 파일
_________컨트롤러 파일
_________뷰 파일
___정리

6장 모델
___CI 모델의 유효 범위
_________모델의 경로
_________모델 로딩
_________모델의 메소드 사용
_________데이터베이스 연결
_________비즈니스 로직
___객체 관계 매핑
_________간단한 ORM 사용 예제
______예제 1: CRUD 예제
_________컨트롤러 파일
_________모델 파일
_________뷰 파일
______예제 2: 비즈니스 로직 예제
_________컨트롤러 파일
_________모델 파일
_________뷰 파일
______예제 3: 페이스북으로부터 데이터 가져오기
_________컨트롤러 파일
_________모델 파일
_________뷰 파일
___정리

7장 뷰
___CI 뷰의 유효 범위
_________CI 뷰에서 사용하는 리소스의 경로
_________렌더링 흐름
_________뷰의 유연성
___라이브러리와 헬퍼 접근
_________폼
_________AJAX
_________파서 설정
_________jQuery 같은 클라이언트 라이브러리와의 통합
_________뷰 렌더링에 사용하는 플러그인
______예제 1: 구글 맵을 활용한 HTML 5 위치 서비스
_________컨트롤러 파일
_________뷰 파일
______예제 2: AJAX와 jQuery UI를 활용한 사용자 피드백
_________ajax_handler.php 컨트롤러 파일
_________users_model.php 모델 파일
_________logged_in_view.php 뷰 파일
___정리

부록
찾아보기

저자소개

저자 엘리 오르(Eli Orr)는 30년 이상을 하이테크 관련 산업에 종사해왔으며, 그중 대부분을 소프트웨어 생산 개발 분야에서 일했다. 또한 「와이어리스 시스템 디자인(Wireless Systems Design)」, 「텔리포니 온라인(Telephony-Online)」, 「콤스디자인(CommsDesign)」, 「EE 타임스(EE Times)」 등의 잡지에 다양한 신기술과 관련한 여러 편의 글을 기고하기도 했다. 현재까지 엘리는 지난 2년 동안 PHP 고급 웹 애플리케이션 개발자로서 코드이그나이터를 기반으로 하여 다양한 기능을 갖춘 대규모 웹 애플리케이션 개발 프로젝트에 집중하고 있다.
그 이전에는 사업가로서 로고다이얼 재픽스(LogoDial Zappix)를 직접 설립해 CTO와 서버 개발자의 역할을 수행했다. 재픽스는 콜센터 음성 메뉴를 동적으로 시각화해주는 소프트웨어로, 현재 미국과 이스라엘에서 iOS, 안드로이드 기반 스마트폰에서 사용되고 있다.
그보다 더 이전에는 AT&T와 함께 통합 커뮤니케이션을 위한 원격 솔루션을 개발했고, 래드비전(Radvision Ltd)에서 생산 관리자로서 VoIP 개발자 툴킷도 만들었다. 또한 이 시기에 주로 H.323과 관련해 VoIP 프로토콜 표준을 정의하는 ITU-T의 신호 처리 그룹 16ITU-T SG 16에서 활발하게 활동했다.
한때, 이스라엘 항공(IAI, Israel Aircraft Industries)의 자회사인 ELTA에서 C와 C++ 언어 기반으로 프로젝트 개발 팀을 이끌기도 했다.

도서소개

코드이그나이터는 PHP 기반의 MVC 프레임워크로 사용이 간편하고 탁월한 성능으로 인해 많은 관심을 받고 있다. 이 책은 코드이그나이터의 다양한 컴포넌트에 대해 설명한다. 일반적인 MVC 구조의 핵심을 이루는 모델, 뷰, 컨트롤러에 대해 자세히 다루며 이와 함께 라이브러리, 헬퍼에 대한 자세한 정보를 제공한다. 책 속에 있는 다양한 예제는 각 컴포넌트를 사용하는 방법을 보여준다. 페이스북, 플리커 같은 외부 API 사용법부터 jQuery/AJAX 연동 예제까지, 실제 개발에도 유용하게 참고할 수 있는 예제를 수록했다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.