PHP를 사용하여 개발하면서 장단점 및 느낀점

Jayden ·2026년 2월 18일

1. DB 데이터 조회와 HTML 구현을 한 파일 안에서 해결

내가 현재 근무하는 직장에서 개발 시 공통적으로 구현할 기능은 메인 페이지에 팝업등록을 하는 기능인데, 게시기간을 등록하고 현재 날짜가 게시 날짜 조건에 포함되는지 확인하는 방식으로 진행을 한다.

만일 PHP가 아닌 프론트엔드와 백엔드를 환경을 구분하는 환경이었다면 API를 호출하여 자바스크립트 변수로 isPost등의 변수로 true/false 여부에 따라 적용하는 방법으로 구현해야 할것이다.

PHP는 서버 사이드 개발 언어다 보니 HTML 코드 사이사이에 자유롭게 DB와 연동하는 CRUD로직을 자유롭게 구사할 수 있다는 점이 좋았다.

2. fragment (코드 조각) 형태로 코드 재사용

리액트vue.js도 UI 및 기능단위 즉, 컴포넌트 형태로 재사용하지만 props를 내려주는 형태가 아닌 그냥 코드(DB 조회 등등 비지니스 로직)나, HTML UI를 조합하는 방식이 페이지마다 공통적인 UI나 기능을 구현하는데 많은 도움이 되는것 같다.

특히 페이징(페이지네이션) 처리 등을 구현하는데 매우 유용했다.

다만. 변수를 상위 PHP 파일에서 변수를 설정하고, 하위 PHP 파일에서 변수를 사용할 경우에는 파일을 왔다갔다 확인해야 할 경우가 많다. 그럴 경우에는 가독성이 좋은 이름으로 변수명을 설정할 필요가 있다고 생각한다. 그리고 가급적이면 해당 변수를 바로 사용하는 PHP 파일에서 변수를 정의하고, 데이터를 가져오는 방식으로 하는것이 좋다고 생각한다.

3.CROS Origin 에러 처리 불필요

브라우저 정책으로 같은 Origin이 아닌 리소스에 접근하고 통신하는 것을 제약하는 정책이다.

리소스가 다르다는것은 프로토콜, 호스트, 포트중에 하나라도 다르다는 것을 의미한다.
(예시로, http://localhost:5000http://localhost:7000은 포트번호가 다르기 때문에 origin이다)

리액트나, 뷰같은 프론트엔드 프레임워크를 개발할 경우, 자연히 백엔드와 같은 서버에 배포했더라도 최소한 포트번호가 달라지기 때문에,
백엔드에서 이를 allow하는 헤더를 전달해서 보내야 하기위해 스프링 프레임워크와 같은 전역 컨트롤러에 이를 설정해야 하는데, 알다시피 PHP서버 사이드 언어이기 때문에 이를 처리하는 번거로움이 없다는 것이 매우 편리했다.

하지만 단점도 분명히 존재한다.

4. 인터렉션이나, 이벤트 동작, ajax 처리가 불편

서버에서 php 파일, js 파일을 전달받고 사용자단에서 클릭 이벤트 등으로 UI를 변경하거나 데이터를 다시 조회해올때, 데이터를 조회해와서 목록을 반영할 경우,
id, class로 해당 영역을 변수로 설정한 다음 innerHTML등으로 기존 UI로직의 일부를 교체하는 방식으로 진행해야 하는데, 데이터가 변경시 자동으로 렌더링되고 UI를 변경해주는 리액트나 뷰와 비교해 보았을때 처리하는 점이 조금 까다롭니다. 퓨어 자바스크립트에 대한 load,DomcontentLoaded,innerHtml등과 같은 자바스크립트 메소드에 관한 깊은 이해가 필요했다.

그리고 단건조회를 리스트조회를 기능으로 변경할 경우에도 php변수를 리스트 변수를 저장하고 js코드에서 해당 변수를 활용하는 방식이라서 조금은 복잡하다는 생각이 들었다.

profile
프론트엔드 개발자

0개의 댓글