====== CI 란? ====== * CodeIgniter는 PHP를 이용하여 web 어플리케이션을 만들 때 기준을 잡아 주는 프레임워크 입니다. * Code + Igniter(점화기) : 명칭을 보면 좀 더 빠르게 코드를 만들기 위한 것을 알 수 있습니다. * CodeIgniter는 가볍고 빠릅니다. * 코어 시스템에 라이브러리를 조금 밖에 사용하지 않기 때문에 다른 많은 리소스를 잡아 먹는 프레임워크에 비해서 빠릅니다. * CodeIgniter는 최초 설정인 System과 개발자 전용의 application 폴더로 구분되어 있습니다. * CodeIgniter는 MVC 패턴을 따르고 있습니다. * CodeIgniter는 기존의 쿼리 문자열(id=t&name=33 대표적으로는 네이버)을 사용하지 않고 세그먼트 방법으로 페이지에 접근하기 때문에 더 간단한 URL을 가집니다. * CodeIgniter는 강력한 다른 분야의 라이브러리를 지원합니다. * CodeIgniter는 자기가 직접만든 라이브러리 도우미 함수, 시스템 상속등을 시스템과 연결화여 확장성이 좋습니다. * CodeIgniter는 템플릿 엔진을 필요로하지 않습니다 . * CodeIgniter는 문서화가 잘되어 있습니다. ====== CI 흐름도 ====== {{:codeigniter:appflowchart.gif|}} - The index.php 는 프론트콘트롤러(front controller)로 동작하여 CI가 동작하기 위한 기반리소스들을 초기화 합니다. - 라우터모듈(Routing)은 http 요청을 분석하여 어떤 동작을 해야할지를 결정합니다. - 캐쉬파일이 있다면 그파일을 바로 브라우저로 보내고 일반적인 동작절차는 무시합니다. - 보안모듈(Security)은 프로그램 컨트롤러가 로딩 되기전에 HTTP 요청및 어떤 사용자 전송데이터든지 모두 필터링합니다. - 컨트롤러(Application controller)는 사용자 요청을 처리하기 위해 모델을 로드하고,코어라이브러리,플러그인,헬퍼 및 필요한 다른 리소스들을 로드 합니다. - 최종적으로 뷰모듈(View)이 렌더링되어 브라우저로 전송됩니다. 캐싱이 활성화 되어이다면 먼저 캐쉬(Cashing)하여 다음번 요청에 사용할 수 있도록 합니다.