본문으로 건너뛰기

CodeIgniter 프레임워크 개요

CodeIgniter는 Model-View-Controller (MVC) 아키텍처 패턴을 따르는 오픈 소스 PHP 웹 응용 프로그램 프레임워크입니다.

이는 동적 웹 사이트와 웹 응용 프로그램을 구축하기 위한 간단하면서도 강력한 도구 모음을 제공합니다. CodeIgniter는 경량화된 크기, 우수한 성능 및 포괄적인 문서로 알려져 있습니다.

역사​

CodeIgniter는 초기에 소프트웨어 개발 회사인 EllisLab에 의해 2006년에 처음 출시되었습니다. 그 단순함과 유연성으로 인해 빠르게 인기를 얻었습니다. 2014년에는 EllisLab이 CodeIgniter의 개발과 유지 관리를 영국 콜럼비아 공과 대학교(BCIT)에게 이관했습니다. BCIT은 계속해서 프레임워크를 개선하고 향상시키며 여러 개의 주요 버전을 출시했습니다.

특징​

1. MVC 아키텍처​

CodeIgniter는 Model-View-Controller (MVC) 아키텍처 패턴을 따릅니다. 이러한 관심사의 분리는 웹 응용 프로그램의 효율적인 개발과 유지 관리를 가능하게 합니다. 모델은 데이터 작업을 처리하고, 뷰는 사용자 인터페이스 렌더링을 처리하며, 컨트롤러는 응용 프로그램의 로직을 처리합니다.

2. 경량화된 크기​

CodeIgniter는 작은 크기로, 자원이 제한된 호스팅 환경에 이상적인 선택입니다. 최소한의 구성이 필요하며, 최소한의 종속성을 가지므로 응용 프로그램의 성능이 더욱 빨라집니다.

3. 우수한 성능​

CodeIgniter는 최적의 성능을 위해 설계되었습니다. 가볍고 효율적인 코드 기반을 활용하여 실행 시간을 더욱 빠르게 합니다. 또한 성능을 더욱 향상시키기 위해 캐싱 메커니즘을 제공합니다.

4. 데이터베이스 지원​

CodeIgniter는 MySQL, PostgreSQL, SQLite 등 다양한 데이터베이스를 기본적으로 지원합니다. 데이터베이스 상호작용을 간소화하고 다른 데이터베이스 시스템 간의 전환을 용이하게 하는 편리한 데이터베이스 추상화 계층을 제공합니다.

5. 양식 및 데이터 유효성 검사​

CodeIgniter에는 데이터 무결성과 보안을 보장하는 강력한 양식 유효성 검사 라이브러리가 포함되어 있습니다. 다양한 내장된 유효성 검사 규칙을 제공하며 사용자 정의 규칙 생성도 가능합니다. 아래는 양식 유효성 검사 라이브러리를 사용하는 예시입니다:

$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');

if ($this->form_validation->run() == FALSE) {
// 양식 유효성 검사 실패
} else {
// 양식 유효성 검사 성공
}

6. 보안 기능​

CodeIgniter는 일반적인 취약점으로부터 응용 프로그램을 보호하기 위해 다양한 보안 기능을 통합하고 있습니다. 이에는 CSRF(Cross-Site Request Forgery) 보호, XSS(Cross-Site Scripting) 필터링 및 입력 데이터 살균이 포함됩니다. 이러한 기능은 악성 공격을 방지하고 응용 프로그램의 보안을 보장하는 데 도움을 줍니다.

7. 오류 처리 및 로깅​

CodeIgniter는 포괄적인 오류 처리 및 로깅 기능을 제공합니다. 사용자 정의 오류 메시지 설정, 예외 처리 및 디버깅을 위한 애플리케이션 오류 로깅을 할 수 있습니다. 또한 파일, 데이터베이스 또는 이메일과 같은 다양한 대상으로 로그 메시지를 기록하는 기능을 지원합니다.

예시​

예시 1: Hello World​

간단한 "Hello World" 예시로 CodeIgniter 애플리케이션의 기본 구조를 보여드리겠습니다.

// 파일: application/controllers/Welcome.php
class Welcome extends CI_Controller {
public function index() {
$data['message'] = 'Hello World!';
$this->load->view('welcome_message', $data);
}
}

// 파일: application/views/welcome_message.php
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
</body>
</html>

이 예시에서는 "Welcome"라는 컨트롤러를 정의하고 인덱스 메서드를 설정합니다. 인덱스 메서드는 메시지 변수를 설정하고 해당하는 뷰를 로드합니다. 뷰 파일은 PHP echo를 사용하여 메시지를 표시합니다.

예시 2: 데이터베이스 상호작용​

CodeIgniter는 데이터베이스와의 상호작용을 간편하게 만들어줍니다. MySQL 데이터베이스에서 데이터를 검색하고 뷰에서 표시하는 예시를 살펴보겠습니다:

// 파일: application/controllers/Users.php
class Users extends CI_Controller {
public function index() {
$this->load->database();
$data['users'] = $this->db->get('users')->result_array();
$this->load->view('users_list', $data);
}
}

// 파일: application/views/users_list.php
<html>
<head>
<title>Users List</title>
</head>
<body>
<h1>Users List</h1>
<ul>
<?php foreach ($users as $user): ?>
<li><?php echo $user['name']; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>

이 예시에서는 CodeIgniter 데이터베이스 라이브러리를 로드하고 "users" 테이블에서 사용자 목록을 검색하여 데이터를 뷰에 전달합니다. 뷰 파일은 사용자 배열을 반복하고 각 사용자의 이름을 표시합니다.

결론​

CodeIgniter는 견고한 웹 응용 프로그램을 구축하기 위한 다양한 기능을 제공하는 강력한 PHP 프레임워크입니다. 경량화된 크기, 우수한 성능 및 포괄적인 문서로 인해 개발자들 사이에서 인기가 있습니다. MVC 패턴을 따르고 다양한 라이브러리를 활용함으로써 효율적이고 안전한 응용 프로그램을 쉽게 생성할 수 있습니다.

자세한 정보, 공식 문서 및 다운로드는 CodeIgniter 웹사이트를 방문해주세요.