설계 및 아키텍처 목표

CodeIgniter의 목표는 가능한 한 작고 가벼운 패키지로 최고의 성능, 기능, 유연성을 제공하는 것입니다.

이 목표를 달성하기 위해 개발 과정의 모든 단계에서 벤치마킹, 리팩터링, 단순화에 헌신하며, 명시된 목표에 부합하지 않는 것은 모두 배제합니다.

기술적·아키텍처적 관점에서 CodeIgniter는 다음 목표를 바탕으로 설계되었습니다:

  • 동적 인스턴스화(Dynamic Instantiation). CodeIgniter에서 컴포넌트는 전역적으로 로드되지 않고, 요청이 있을 때만 로드되고 루틴이 실행됩니다. 시스템은 최소한의 핵심 리소스 외에 무엇이 필요한지 가정하지 않으므로, 기본적으로 매우 가볍습니다. HTTP 요청에 의해 트리거된 이벤트와 설계한 컨트롤러 및 뷰가 무엇을 호출할지 결정합니다.

  • 느슨한 결합(Loose Coupling). 결합도는 시스템의 컴포넌트들이 서로 얼마나 의존하는지를 나타냅니다. 컴포넌트들이 서로 덜 의존할수록 시스템은 더 재사용 가능하고 유연해집니다. 매우 느슨하게 결합된 시스템을 목표로 했습니다.

  • 컴포넌트 단일성(Component Singularity). 단일성은 컴포넌트가 좁게 집중된 목적을 가지는 정도를 의미합니다. CodeIgniter에서 각 클래스와 함수는 최대한의 유용성을 위해 고도로 자율적으로 설계되었습니다.

CodeIgniter는 높은 컴포넌트 단일성을 가진 동적 인스턴스화, 느슨한 결합 시스템입니다. 작은 풋프린트 패키지에서 단순성, 유연성, 고성능을 추구합니다.