PHP 전체 개발 환경 정리

320x100

전체 구조

  • Language
    PHP (tool : PHP Storm)
  • Framework
    Laravel
  • Server
    • AWS
    • Docker
  • DB
    • MySQL (tool : workbench)
  • 컴퓨터 OS
    • Mac OS
  • 그 외
    • github

각 항목들에 대한 기본적인 설명

PHP

PHP는 가장 쉽게 웹사이트를 제작할 수 있도록 만들어진 서버 사이드 스크립트 언어이며, 배우면서 javascript와 jsp가 많이 생각이 났었으나, 둘과는 분명히 많은 차이가 존재한다.

HTML 내부에서 php 구문을 사용할 범위를 지정한 후 그 안에 php 언어로 프로그래밍을 하는 방식이며, jsp와 달리 일반 프로그래밍 언어에서 사용하는 많은 기능들을 HTML 안에 지정할 수 있으며, Javascript보다 좀 더 프로그래밍 언어다운 다양한 기능들이 존재한다.

이미 다른 프로그래밍 언어를 경험해 보았다면 가볍게 문법에 대한 차이나 동작 방식들을 훑고 넘어가면 될 듯하다.

 

하지만, 하나 알아야 할 점이 다른 언어들에 비해 참고하고 활용할 수 있는 인덱스가 많이 적다. 특히 오랫동안 사랑받았던 Java를 주로 사용했던 내 입장에서는 php를 제대로 익힐 수 있도록 도움받을 곳이 많이 부족하다고 생각한다. 나는 영어와 친하지 않아서 그런지 관련 강의 수도 매우 적고, 관련 포스팅도 매우 적다. 게다가 오류를 찾고자 구글링을 할 때는 10중에 9 이상은 영어권 사이트에서 찾아야 한다. 그나마 다행인 건 공식 문서가 나름대로 잘 되어있다는 것이지만, 공식 문서의 A-Z까지 다 볼 수 있는 것도 아니고, 제대로 된 강의나 블로그들이 많지 않다는 건 슬픈 일이다.

Laravel Framework

Java에는 spring framework가 빠질 수 없듯이, PHP는 현재 laravel framework가 빠질 수 없다.

라라벨 프레임워크 이전에는 CodeIgniter(코드이그나이터)라는 프레임워크가 유행했으며, 두 프레임워크 이외에도 여러가지 프레임워크들이 존재하고 장단점들이 존재하나, 현재 php에서는 누가 뭐래도 라라벨 프레임워크가 대세를 이루고 있다. 체감상 라라벨 프레임워크는 Java의 스프링 프레임워크보다는 Node.js와 더 유사한 구조라고 생각이 된다. 매퍼를 통해 라우팅을 하는 스프링과 달리, 명령어로 컨트롤러를 생성하, 별도 라우팅 파일에서 RESTFul 한 형식으로 API와 그에 사용될 컨트롤러를 지정해 주는 방식이다. 그러나, 일반적인 프레임워크와 같이 의존성 주입 등의 큰 개념들은 크게 다르지 않으니 폴더 구조와 흐름만 이해하면 금방 적응할 수 있을 것 같다.

AWS

AWS는 프로젝트를 호스팅하는 클라우드 서버이다. 서버에 대한 구성을 직접 선택하고 그에 맞는 가격 정책을 통해 요금을 지불하고 외부 사용자들이 내가 만든 사이트에 접근할 수 있도록 해준다.
세세하게 설정을 할 수 있으나, 오히려 그런 부분이 어느 정도 전문성이 필요하기 때문에 환경에 대한 세팅과 부하가 일어나지 않을 만한 규모를 책정해야 한다.

Docker

Docker는 컨테이너 환경이다. 컨테이너 환경을 쉽게 설명하자면, DB 서버, 소스들이 존재하는 서버 등 여러가지로 분리된 서버들을 하나의 큰 컨테이너 안에 집어넣는 느낌이다. 각각의 내부 서버를 만드는 작업은 기존 VirtualBox 등의 환경보다 비교적 훨씬 간단하며, 전체 서버를 담고 있는 컨테이너에 집중하여 서버를 관리하게 되면 여러 곳에 분산된 서버를 각각 관리하는 것보다 유지보수 측면에서 훨씬 뛰어나다.

MySQL

MySQL은 여러 스타트업에게 사랑받는 언어이며, 라라벨에서 지원하는 대표적인 데이터베이스이기도 하다.

Mac

Windows 환경에서만 개발했었던 나에게 Mac은 너무도 어려웠다. 윈도우의 시작 버튼은 맥에 존재하지 않으며, Ctrl키와 비슷한 동작을 하는 Command키가 존재하는데, 이 키는 윈도우 기준으로 Alt키 위치에 있어 키보드 자판의 배열조차 익숙하지 않았다. 게다가 거의 모든 설치를 홈페이지에서 다운받는 것이 아니라 터미널로 명령어를 타이핑하여 다운로드받는 것이 정말 익숙해지기 쉽지 않다. 하지만, 라라벨이 명령어를 입력하여 컨트롤러나 여러 가지 기능들을 추가하는 경우가 많고, Docker 또한 명령어를 사용해 작업하는 부분들이 많았으므로 윈도우보다 맥에 조금 더 적합할 수 있겠다는 생각을 했었다.

Github

두말할 필요 없는 대표적인 협업을 위한 저장소이다.

320x100

'PHP' 카테고리의 다른 글

PHP 표준 권고(PSR)  (0) 2023.07.04
PHP 기본 문법 요약  (0) 2023.06.30
[PHP & Laravel] JWT Token 방식 구현  (0) 2023.06.23
Java 프로그래머가 PHP를 시작하는 방법  (0) 2023.03.01