설계의 목적 Design and Architectural Goals
CodeIgniter 는극한의 성능, 적용성, 최소성 ,유연성,가벼움 을 목적으로 설계되었습니다.
이 목적을 만족시키기위해서 벤치마킹,리펙토링,단순화하기 등을 개발의 전 과정에서 수행하였습니다.
그리고, 이 목적에 맞지않는것은 단호히 제거하였습니다.
기술적,설계적 관점에서 CodeIgniter는 다음의 목표를 따릅니다.
- 동적인 작동(Dynamic Instantiation). CodeIgniter 에서 컴포넌트들은 글로벌이 아니라 오직 사용자가 필요할때만 로드되어 사용됩니다.어떤 기능이 필요할지 미리 짐작하지않으므로 매우 가벼운 상태를기본으로 하고있습니다.님하가 작성하신 컨트롤러와 뷰는 HTTP 요청이 발생할때 비로소 무엇이 호출될지를 결정합니다.
- 느슨한 결합( Loose Coupling). 결합(Coupling)이란 어떤 컴포넌트가 어떤컴포넌트에 의존하는가 하는 수준을 말합니다. 적은 컴포넌트 의존은 더욱 유연하고 재사용 가능한 시스템이 되게합니다.우리 목표는 대단히 느슨하게 결합된 시스템 입니다.
- 컴포넌트 단일성(Component Singularity). 단일성이란 컴포넌트가 얼마나 목적에만 집중하는가에대한 수준을 말합니다. CodeIgniter 에서는 사용성을 극대화하기 위하여 각 클래스와 함수가 대단히 그 고유기능에 집중되어 만들어져 있습니다.
위 목표로 인하여 CodeIgniter 는 작은 패키지 이면서도 단순성,유연성,고가용성을 달성하기위해 노력하고있습니다.