본문 바로가기
개인기록/개발공부

PHP 경량 프레임워크 CodeIgniter 기본 개념 정리

by 심플리Do 2025. 5. 9.

최근 신규 입사자에게 사내 시스템의 개발 구조를 설명하면서,
우리 회사가 사용하는 CodeIgniter라는 PHP 프레임워크에 대해
제대로 이해하고 있는지 돌아보게 됐다.
이번 글은 나 자신과 후임자를 위해 CodeIgniter의 핵심 구조와 개념을 정리한 글이다.

 

🧪 실행 환경

  • 언어: PHP (보통 PHP 5.6~8.x에서 사용)
  • 프레임워크 버전: CodeIgniter 3.x 또는 4.x
  • 아파치 or Nginx + MySQL 환경
  • 기타: 사내 프레임워크는 CI를 커스터마이징한 구조로 운영

🧭 CodeIgniter란?

CodeIgniter(코드이그나이터)는
🔹 빠르고 가벼운 PHP 프레임워크
🔹 MVC(Model-View-Controller) 구조를 기반으로 하고 있으며
🔹 설정이 거의 필요 없는 "제로 설정" 스타일이 특징이다.

✅ 주요 특징

  • 경량 & 빠른 성능 (라라벨보다 빠름)
  • 간단한 설정, 쉬운 설치
  • 문서화 잘 되어 있음
  • PHP에 익숙한 사람은 금방 적응 가능

🔍 기본 구조 이해 (MVC 패턴 기반)

/application
    ├── controllers/    : 요청 처리 (C)
    ├── models/         : DB 접근 로직 (M)
    ├── views/          : 화면 출력 (V)
    ├── config/         : 환경 설정
    └── libraries/      : 확장 기능

예시 흐름:

  1. 사용자가 /user/profile 요청
  2. User.php 컨트롤러에서 profile() 함수 실행
  3. 필요 시 Model 호출 → DB에서 정보 조회
  4. 결과를 View에 전달 → 브라우저에 출력

✅ CodeIgniter의 장단점

장점 단점
빠른 실행 속도 라라벨 등 모던 프레임워크에 비해 제한적
학습 곡선 낮음 자동화/생산성 도구 부족
문서가 풍부함 대형 프로젝트에서는 구조 정리가 어려움
커스터마이징 용이 전통적인 PHP 스타일이 많이 남아있음
 

🛠 우리 회사에서의 사용 예시

  • CI를 기초 뼈대로 사용하되, 자체 프레임워크(Core)로 확장
  • Controller는 보통 업무 단위로 나뉘며, View는 HTML 템플릿 기반
  • Model은 SP(Stored Procedure) 기반의 데이터 처리 중심
  • Route 설정보다는 URL 구조를 파일명 기반으로 매핑

신규 입사자라면 다음 순서로 구조를 익히는 것이 좋다:

🎯 추천 익히기 순서

  1. controllers → 실제 요청을 처리하는 로직 이해
  2. views → 어떤 방식으로 화면이 구성되는지 파악
  3. models → SP 호출 또는 DB 처리 방식 확인
  4. core 또는 libraries → 공통 처리 구조 파악

📌 회고

CodeIgniter는 현대적인 프레임워크는 아니지만,
명확한 구조와 빠른 처리 속도, 그리고 레거시 시스템과의 호환성 덕분에
지금도 많은 기업에서 사용되고 있다.
회사 시스템이 CI 기반이라면, 이를 정확히 이해하고 나서
어떤 부분을 확장했는지, 공통 라이브러리가 어떤 역할을 하는지 파악하는 것이 중요하다.