XAMPP

XAMPP는 아파치(Apache) 웹 서버, 마이에스큐엘(MySQL) 데이터베이스 혹은, 마리아디비 (MariaDB) 데이터베이스, PHP, 펄(Perl)이 합쳐진 패키지입니다. PHP 서버 올인원 패키지인 셈입니다.

개별적으로 아파치, MariaDB, PHP를 설치해도 무관하지만 한번에 설치하는 것이 더 편리하므로 XAMPP를 통해 서버 환경을 구성해 보겠습니다.

https://www.apachefriends.org/download.html 에서 XAMPP를 다운로드합니다.

2021년 1월 기준 PHP LTS 버전은 최소 버전 7.3, 최신 버전 8.0입니다. 7.2 버전 이상 8버전 미만 중 가장 최신 버전을 선택하시면 됩니다. (저는 7.3.14 버전이 설치되어 있어서 설치된 버전으로 진행하겠습니다.) 8버전을 선택하지 않는 이유는 안정성 때문입니다. 큰 버전이 올라간다는 것은 변화가 많다는 뜻이고, 아직 정기 패치가 안정화되어 있지 않을 가능성이 높기 때문에 최신 버전은 사용하지 않습니다. XAMPP 7.4.14 / PHP 7.4.14 버전을 다운로드해서 설치합니다.

만약 docker나 vagrant에 익숙하다면 직접 구성하는 것도 좋은 선택지입니다. 다만 도커나 베이그런트의 경우 필요로 하는 사전 지식이 상대적으로 훨씬 많으므로 빠르게 개발을 시작하기보다는 본격적으로 환경을 구축하려는 분들에게 추천합니다.

설치가 진행되는 동안 XAMPP의 구성 요소에 대해 잠시 살펴보겠습니다.

아파치(Apache)

웹서버는 웹 요청을 받아들이는 서버를 말합니다.

아파치는 전세계에서 가장 많이 사용되는 웹서버 중 하나입니다. 나머지 하나는 nginx인데, 아파치는 풍부한 기능을, nginx는 빠른 속도를 강점으로 내세웁니다. PHP는 전통적으로 아파치와 함께 성장해 온 만큼 서로 궁합이 잘 맞으므로 특별한 이슈가 없다면 아파치를 선택합니다.

아파치 자체가 PHP의 스크립트를 실행할 수 있는 것은 아닙니다. 아파치는 웹 서버여서 CSS나 .js 파일처럼 요청에 따라 내용이 바뀌지 않는 정적 파일만 처리할 수 있습니다.
다만 아파치에는 연동 기능이 있어서 다른 CGI 프로세스를 실행시키거나(Fast-CGI), 아파치 자체에 PHP를 내장하거나 (mod_php) 할 수 있습니다. 일반적으로는 속도가 더 빠른 Fast-CGI(PHP_FPM) 방식을 사용합니다.

마이에스큐엘(MySQL) 혹은 마리아디비(MariaDB)

MariaDB는 관계형 데이터베이스의 일종으로, 전세계에서 가장 많이 쓰이는 "무료" 데이터베이스입니다.
원래는 MySQL이라는 무료 데이터베이스 시스템이 있었으나 MySQL이 오라클사에 인수되면서 배포시 유료라는 가격정책이 생김에 따라 MySQL을 클론해서 만들어진 프로젝트입니다. 이런 역사로 인해 MariaDB는 MySQL과 사용법이 완전히 동일하고, 데이터베이스 드라이버도 똑같은 것을 사용합니다.

PHP

바로 코드이그나이터4가 실행되는 언어입니다. 1995년 1.0 버전을 시작으로 2020년 11월 8.0 버전까지 릴리즈되었습니다. 처음에는 아주 단순한 C언어 래퍼였으나, 점점 발전해서 현재는 클래스를 활용한 객체지향 프로그래밍, 일급 객체로서의 함수를 다루는 함수형 프로그래밍 등 멀티 패러다임 개발이 가능합니다.
다만 역사가 오래된 탓에 초창기의 절차적 코드 스타일이 꽤 많이 남아 있습니다. 이것은 사용자들의 습관 때문이기도 하지만 PHP 코어가 하위 호환성을 많이 고려해서 업데이트하는 경향이 있기 때문이기도 합니다.

profile
중년 아저씨. 10 + n년차 백엔드 개발자. 스타트업과 창업, 솔로프리너와 1인 기업에 관심 많아요.

10개의 댓글

comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기
comment-user-thumbnail
2022년 5월 18일

22.05.18 학습 완료. 감사합니다.

답글 달기