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