Files
jongryangje/docs/기본 개발계획/12-technology-stack-rationale.md
2026-04-08 00:23:55 +09:00

6.0 KiB

기술 스택 선정 이유 (회의용)

이 프로젝트의 기술 스택을 CodeIgniter 4.7, PHP 8.4, MariaDB 11.7, Homebrew, Apache 2.4 로 세팅한 이유를 회의에서 설명할 때 참고할 수 있도록 정리한 문서입니다.

요약: 위 항목은 모두 최신이면서 안정(stable) 버전으로 맞춰 두었다. 각 항목은 해당 라인(4.x, 8.x, 11.x, 2.4.x)에서 현재 제공되는 최신 안정 릴리스이다. 회의에서 “전부 최신 안정화 버전으로 설치했다”고 말해도 된다.


최신 안정화 버전 사용 시 장단점

장점

  • 보안: 최신 안정 버전은 알려진 보안 취약점에 대한 패치가 반영되어 있어, 공공·관공서 환경에서 유리하다.
  • 성능·기능: 해당 라인에서의 성능 개선·버그 수정·새 기능을 바로 활용할 수 있다.
  • 지원 기간: 구버전보다 보안·버그 수정 지원이 더 오래 이어질 가능성이 높다.
  • 문서·커뮤니티: 최신 버전 기준 문서·질문·해결책이 많아 문제 해결이 수월하다.
  • 향후 유지보수: 나중에 한 번에 대규모 업그레이드할 필요가 줄어든다.

단점

  • 호환성: 레거시 시스템·서드파티 라이브러리와의 호환 이슈가 가끔 생길 수 있다. (이 프로젝트는 새로 시작하므로 상대적으로 부담이 적음.)
  • 변경 사항: 최신 버전에서 동작 변경·deprecation이 있을 수 있어, 마이너 업데이트 시 릴리스 노트 확인이 필요하다.
  • 운영 환경: 실제 서버(지자체)가 구버전 PHP·DB·웹서버를 쓰는 경우, 배포 시 버전 맞춤이 필요할 수 있다.

정리: 이 프로젝트는 신규 개발이고 참조 프로젝트(auth)와의 이식만 고려하면 되므로, 최신 안정 버전 사용의 장점이 단점보다 크다. 운영 서버 버전은 배포 전에 한 번 확인하는 것이 좋다.


1. CodeIgniter 4.7

  • 참조 프로젝트(slow-auth-application)가 CodeIgniter 기반이라, admin(메뉴·회원 관리) 구조·화면 흐름을 이식하기 쉽다. CI3 → CI4로 올리면서 코드를 그대로 복사하지 않고 동작만 맞춰 가져오는 방식으로 개발 계획을 세웠다.
  • 경량·PHP 네이티브라 학습 곡선이 낮고, 지자체 내부 서버에 설치하는 응용프로그램형 배포에 적합하다. 무겁지 않아 레거시 환경에서도 운영 부담이 적다.
  • PSR-4·네임스페이스·Filter·Validation 등 현대 PHP 구조를 지원해, 유지보수와 테스트 작성이 수월하다.
  • 4.7은 LTS에 가까운 안정 라인으로, 장기 유지보수·보안 패치를 기대할 수 있다.

2. PHP 8.4

  • CI4 공식 요구사항이 PHP 8.2 이상이므로, 8.4는 요구사항을 만족하면서 최신 안정 버전을 쓰는 선택이다.
  • PHP 8.x의 타입·성능·JIT 등 개선을 활용할 수 있고, 보안·버그 수정이 활발한 버전을 쓰기 위함이다.
  • 프로젝트가 새로 시작하는 시점이므로, 레거시 호환보다 현재 권장 버전을 선택했다.

3. MariaDB 11.7

  • MySQL과 호환되며, 기존 레거시·문서에서 MySQL/ MariaDB를 전제로 한 설명이 많아 마이그레이션·DDL 재사용이 쉽다. 참조용 auth DB DDL(member, member_log 등)도 그대로 활용할 수 있다.
  • PHP 8 + CI4와의 호환성이 검증되어 있고, CI4 DB 드라이버(MySQLi/PDO)로 문제 없이 연동된다.
  • 11.7은 최신 안정(stable) 라인으로, 성능·기능 면에서 충분하며, 지자체 서버에 설치형으로 올리기에도 무리가 없다.
  • 오픈소스·라이선스 이슈가 없어 공공·관공서 환경에서도 선택하기 수월하다.

4. Homebrew

  • macOS 로컬 개발 환경에서 패키지 설치·버전 관리가 쉽다. MariaDB, PHP(필요 시), Apache 등 한 곳에서 의존성을 관리할 수 있다.
  • 팀원이 macOS를 쓰는 경우 동일한 환경brew install 수준으로 맞추기 좋고, 문서화(예: 07-local-db-setup.md)도 단순해진다.
  • 서버(운영) 환경과는 별개로, 로컬 개발용 도구 체인을 Homebrew로 통일한 선택이다.

5. Apache 2.4

  • 버전: 2.4.x 라인이 현재 안정(stable) 브랜치이며, Homebrew 등에서 제공하는 최신 2.4를 사용하면 된다. (예: 2.4.62, 2.4.63 등 — 설치 시점의 brew install httpd 버전을 따른다.)
  • PHP와의 연동이 오래되고 문서·자료가 많아, 지자체·관공서에서 이미 쓰는 기존 인프라와 맞추기 쉽다.
  • mod_rewrite로 CI4 라우팅(index.php 제거, clean URL)을 적용하는 패턴이 널리 알려져 있어, 배포·설정이 단순하다.
  • 운영 측에서 nginx 등 다른 웹 서버를 쓰는 경우, 나중에 리버스 프록시 뒤에 PHP-FPM + Apache 또는 nginx + PHP-FPM으로 바꿀 수 있도록, CI4는 프레임워크 단에서 웹 서버에 종속되지 않게 구성해 두면 된다. 현재는 로컬/테스트 환경을 Apache 기준으로 세팅한 것이다.

요약 (회의에서 한 줄씩)

항목 선정 이유 (한 줄)
CodeIgniter 4.7 참조 프로젝트(auth)가 CI 기반이라 이식이 쉽고, 경량·PHP 네이티브로 지자체 설치형에 적합함.
PHP 8.4 CI4 요구사항(PHP 8.2+) 충족 + 최신 안정 버전으로 성능·보안·유지보수 이점.
MariaDB 11.7 MySQL 호환·auth DDL 재사용 용이, PHP 8·CI4와 호환, 오픈소스로 공공 환경에 적합.
Homebrew macOS 로컬 개발 시 패키지·환경 통일이 쉽고, 문서화·온보딩이 단순함.
Apache 2.4 2.4.x 안정 라인. PHP 연동·mod_rewrite 패턴이 익숙하고, 기존 인프라·문서와 맞추기 좋음. 로컬/테스트 기준.

이 문서는 회의에서 “왜 이 스택인가?”를 설명할 때 참고용으로 사용하면 됩니다.