알씨타운

코드이그나이터에 대해! 본문

RCTOWN 리뷰/기술 리뷰

코드이그나이터에 대해!

(주)소프트랩스 2022. 7. 25. 16:21

 

안녕하세요. 알씨타운입니다.

오늘의 리뷰 주제는 코드이그나이터입니다. 흔히 CI라고 불리고 있습니다.

사람들은 코드이그나이터를 왜 사용할까요?

 

 

코드이그나이터의 장점으로는

 

1. 설치 공간이 작은 프레임워크

2. 뛰어난 성능

3. 커맨드 라인(command line)을 사용할 필요가 없는 프레임워크

4. 제한적인 코딩 규칙을 준수하지 않아도 되는 프레임워크

5. 프레임워크에 대한 명확하고 철저한 문서 (한국 사용자 포럼이 존재함)

6. 간단한 인터페이스 / 논리적 구조 → 빠르게 프로젝트를 개발할 수 있음

7. 초보자가 시작하기 좋은 PHP 프레임워크 (타 프레임워크에 비해 쉽다)

8. 소스 코드만 다운로드해서 서버 루트에 압출을 풀어주면 설치가 끝난다.

9. CodeIgniter에서 생성한 URL은 깔끔하고 검색엔진에서 색인 되기 좋은 구조. 일반적인 쿼리 스트링 기반의 URL이 아니라 세그먼트 기반의 URL을 사용 

(ex : example.com/class/function/ID)

 

코드이그나이터는 라라벨이나 심포니 같은 대규모 프레임워크에 비해 상대적으로 배우기 쉽고, 유연합니다.

특정한 방법을 강요하지 않으며 그저 웹 서비스를 잘 만드는 것에 집중합니다.

프레임워크 러닝 커브가 너무 크다면 서비스를 만드는 것에 집중하는 것보다

프레임워크의 기능을 익히는 데 더 많은 시간을 사용해야 합니다.

 

MVC 모델을 사용

MVC는 Model View Controller의 약자로 개발할 때 각 파일의 역할을 나누는 프로그래밍 패턴을 말합니다

Model(모델) - 데이터, 데이터베이스(DB) 연동 데이터를 저장하고, 읽어오고, 삭제.

/application/models

/application/config/database.php

View(뷰) - html/css/javascrip 시각적으로 표현되는 코드를 관리

/application/views

Controller(컨트롤러) - 기능, 전체적인 동작 담당 모델과 뷰 사이에 존재. 클라이언트의 요청을 받아서 어떤 모델(들)을 호출해서 데이터를 처리하고, 어떤 뷰를 호출해서 클라이언트에게 응답을 내보낼 것인지 결정.

/application/controllers

 

필요 설치 프로그램

아파치, 웹서버

mysql or MariaDB

PHP

위 세 개를 따로 설치해도 무관합니다.

간단한 통합 서버 환경으로도 가능함. (ex XAMPP)

 

 

요구사항

코드이그나이터4는 PHP 7.2 버전 이상에서 실행됩니다.

국제화 익스텐션 intl 멀티 바이트 익스텐션 mbstring 필수로 필요합니다. (php.ini 파일에서 수정 가능)

extension=intl

extension=mbstring

활성화

웹호스팅의 경우 웹 호스팅 업체에 익스텐션 활성화를 요구해야 합니다.

설치

1. 다운로드

아래 URL의 Download CodeIgniter를 클릭해서 소스 코드를 다운로드합니다.

https://codeigniter.com/download

 

2. 압축 해제

웹서버의 Document ROOT으로 이동해서 압축을 해제합니다.

로컬의 경우 아파치 서버의 지정된 프로젝트 경로

예를 들어 통합 서버 비트나미의 경우 /Bitnami/wampstack-버전/apache2/htdocs/ 안에 풀어주면 됩니다.

 

 

환경설정

설치 후 환경설정

.env 파일은 코드이그나이터4의 기본 환경 설정 파일입니다.

만약 .env 파일에 정의되어 있지 않은 내용은 app/Config/App.php 에 정의된 내용으로 대체됩니다.

환경 설정 파일이 따로 존재하는 이유는, 여러 서버의 설정을 서로 다르게, 혹은 같게 유지하기 위해서입니다.

예를 들어 테스트하는 스테이징 서버, 개발 서버, 실제 운용을 하는 운영 서버의 환경은 서로 다를 것이기 때문이죠.

# CI_ENVIRONMENT = production CI_ENVIRONMENT = development 이런식으로 개발모드와 배포 모드를 쉽게 변경가능 개발모드에서는 오류가 나면 오류를 자세하게 보여주므로 개발할 때의 시간을 단축할 수 있다. 기본 url 설정도 .env에서 가능

 

 

CI의 MVC 규칙만 숙지하고 있으면 개발이 매우 쉽다.

세그먼트 기반의 url구조

출처 생활코딩 코드이그나이터

 

 

유용한 기능

Helper

헬퍼란 자주 사용하는 로직을 재활용할 수 있게 만든 일종의 Library입니다.

CI에는 라이브러리라는 개념이 별도로 존재하는데 Helper와 Library의 차이점은

Helper가 객체지향이 아닌 독립된 함수라면

library는 객체지향인 클래스입니다.

$this->load->helper('헬퍼의 이름'); $autoload['helper'] = array('url', 'file');

배열(Array),CAPTCHA 헬퍼, 쿠키(Cookie), 날짜(Date)

디렉터리(Directory), 다운로드(Download), 이메일(Email)

파일(File), 폼(Form), HTML, 인플렉터(어형변화), 언어(Language)

숫자(Number), 경로(Path), 보안(Security), 스마일리(Smiley)

문자열(String), 텍스트 처리(Text), 타이포그래피(Typography)

URL, XML

 

Helper 제작

따로 헬퍼를 만들어서도 사용이 가능합니다.

Helper는 가볍게 만들기 좋은 라이브러리입니다.

만드는 방법은 application/helper 디렉터리에 date_helper.php 파일을 만들고

그 속에 korean_date()를 정의하면 됩니다.

Library

라이브러리는 재활용 가능성이 있는 로직을 재활용하기 좋은 형태로 만들어둔 것입니다.

CI는 웹 개발에서 자주 사용되는 로직들을 내장(Core) 라이브러리로 제공하고 있습니다.

내장 라이브러리를 확장(extend)해서 필요에 따라 수정해 사용할 수 있고, 직접 라이브러리를 만들 수도 있습니다.

$this->load->library("라이브러리명");

$this->load->library(array('라이브러리명1','라이브러리명2'));

Session

PHP는 기본적으로 사용자의 세션 정보를 파일로 저장합니다.

하지만 세션은 사용자를 식별하는 정보이기 때문에 보안이 매우 중요한데

이것을 로컬 시스템의 파일로 저장하는 것은 보안 취약점이 됩니다.

또 PHP가 동작하는 서버가 여러 대로 분산되면 사용자의 세션 정보를 공유하는 것이 어려워지기 때문에

세션 정보에 대한 저장소로 데이터베이스를 이용합니다.

CodeIgniter는 사용자의 세션 정보와 데이터베이스를

연결해 주는 기능을 기본적으로 가지고 있습니다.

세션 정보의 사용

세션을 사용하기 위해서는 우선 세션 라이브러리 클래스를 로드 해야 합니다.

세션은 서비스 전역에서 사용되는 기능성이기 때문에 코드이그나이터에서 제공하는 auto load를 사용하면 편리하게 사용이 가능합니다.

여기까지 코드이그나이터에 대해 알아 보았습니다.

감사합니다.

 

'RCTOWN 리뷰 > 기술 리뷰' 카테고리의 다른 글

Auto-GPT  (0) 2023.04.26
GPT 란  (0) 2023.04.26
구글 웹 바이탈(Web Vitals) 이란?  (0) 2022.07.20
Web GL이란?  (0) 2022.07.07
PWA 란?  (0) 2022.07.07
Comments