PHP 프로젝트 구조 설계 기준 — Controller를 얇게 유지하는 방법
PHP 프로젝트는 초기에 빠르게 기능을 붙이다 보면 Controller가 쉽게 비대해진다. 요청 처리, 검증, 비즈니스 로직, DB 쿼리, 응답 생성이 한 파일에 섞이면서 유지보수가 어려워진다. Control...
테스트 검색 결과: 37개
PHP 프로젝트는 초기에 빠르게 기능을 붙이다 보면 Controller가 쉽게 비대해진다. 요청 처리, 검증, 비즈니스 로직, DB 쿼리, 응답 생성이 한 파일에 섞이면서 유지보수가 어려워진다. Control...
PHP는 비교적 빠르게 기능을 만들 수 있는 언어지만, 프로젝트가 커질수록 구조가 무너지기 쉽다. 초기에 패턴과 책임 분리를 정해 두지 않으면, 기능 추가와 수정이 어려운 형태로 굳어지기 때문이다. 실무에서는...
성능 튜닝은 코드를 많이 바꾸는 작업이 아니라 같은 조건에서 병목을 측정하고 가장 작은 변경의 효과를 확인하는 과정이다. 이 글은 MariaDB 10.11의 별도 실습 DB에서 날짜 조건 쿼리를 비교하는 절차를 다룬...
웹 서비스의 업로드 파일을 EC2 디스크에 저장하면 구현은 간단하다. 하지만 인스턴스를 교체하거나 여러 대로 늘리는 순간 각 서버가 서로 다른 파일을 갖게 된다. 이 글은 S3의 기능을 나열하기보다 언제 로컬 디스크...
이 글은 서비스 장애·안정성과 관련된 네 가지 주제 — 장애 대응 체크리스트, 포스트모템 작성 방법, 온콜(On-call) 경험 정리, 데이터베이스 장애 시나리오 — 를 개발자·운영자 관점에서 정리한 메모이다. ...
블루·그린, 카나리와 롤링 배포를 모두 설명해도 서버 한 대에서 실제로 무엇을 실행할지 정해지지 않으면 도움이 되기 어렵다. 이 글은 Nginx와 PHP-FPM이 있는 단일 EC2를 기준으로 작은 서비스의 배포 단계...
Git의 commit과 branch 정의를 아는 것보다 운영에서 중요한 것은 어떤 변경이 검증되어 언제 배포됐는지 다시 찾을 수 있는 이력을 만드는 일이다. 이 글은 PHP 버그 수정 하나를 작은 브랜치에서 시작해 ...
개발에서 말하는 파이프라인(pipeline)은 코드를 커밋한 뒤 테스트·빌드·배포까지 이어지는 일련의 단계를 자동으로 실행하는 흐름을 의미한다. 이 글에서는 파이프라인의 개념, 실제로 어디에 쓰이는지, 왜 현대 개발...
“소통을 잘하자”는 원칙만으로는 협업 방식을 통일하기 어렵다. 다른 개발자가 변경 목적을 이해하고 같은 결과를 재현하려면 작업 전후에 남길 정보와 완료 조건이 구체적이어야 한다. 이 글은 PHP 게시글 조회 오류를 ...
서버 운영 중 자주 발생하는 오류와 그에 대한 처리 방법, 그리고 사전 방지 방안을 정리한 내용이다. 디스크, 메모리, 프로세스, 네트워크, 로그 관련 항목을 중심으로 서술한다. 1. 디스크 풀 (Disk Fu...