PHP 변경을 이슈부터 배포까지 추적하기 — 작은 diff·검증·안전한 되돌리기
도입 코드를 수정하는 일은 파일을 바꾸는 것으로 끝나지 않는다. 다른 개발자가 문제를 재현하고 변경 범위를 검토하며, 운영에 반영된 버전을 찾고, 문제가 생겼을 때 안전하게 되돌릴 수 있어야 하나의 작업이 완성...
트랜잭션 검색 결과: 12개
도입 코드를 수정하는 일은 파일을 바꾸는 것으로 끝나지 않는다. 다른 개발자가 문제를 재현하고 변경 범위를 검토하며, 운영에 반영된 버전을 찾고, 문제가 생겼을 때 안전하게 되돌릴 수 있어야 하나의 작업이 완성...
도입 dump 명령이 성공하고 파일이 존재해도 그 파일이 원하는 시점과 범위의 데이터를 복원한다는 보장은 없다. 백업은 격리된 환경에 복원하고 구조·데이터·애플리케이션 읽기를 확인해야 운영 가능한 복구 수단이 ...
도입 Deadlock은 두 트랜잭션이 서로 상대방의 잠금 해제를 기다리는 순환 대기다. InnoDB는 이를 감지하면 한 트랜잭션을 희생시켜 오류 1213을 반환하고 다른 트랜잭션이 진행하게 한다. 재시도는...
도입 컬럼을 한 번에 바꾸면 이전 애플리케이션과 새 애플리케이션이 동시에 동작하는 배포 구간에서 한쪽이 실패할 수 있다. Expand-Contract는 호환 가능한 구조를 먼저 추가하고 사용 전환이 끝난 뒤 오...
MariaDB 10.11 덤프·복원 검증 — customers 테이블로 원본과 대상 비교하기 덤프 파일이 만들어졌다는 사실만으로 복원이 제대로 끝났다고 판단할 수는 없다. 이 글은 기존 실습 이미지의 testd...
도입 ALTER TABLE이 끝나지 않을 때 테이블 크기만 의심하면 원인을 놓칠 수 있다. Waiting for table metadata lock 상태라면 다른 세션의 열린 트랜잭션 때문에 DDL이 시작되지 ...
Service Layer는 “있으면 좋아 보이는 계층”이 아니라, 코드가 무너지기 시작할 때 필요한 안전장치다. Controller에 로직이 쌓이기 시작하면 기능 추가 속도는 잠깐 빨라지지만, 수정 비용이 급격히 ...
PHP 프로젝트는 초기에 빠르게 기능을 붙이다 보면 Controller가 쉽게 비대해진다. 요청 처리, 검증, 비즈니스 로직, DB 쿼리, 응답 생성이 한 파일에 섞이면서 유지보수가 어려워진다. Control...
데이터가 수천만 건을 넘어가면 단일 테이블 구조는 점점 한계에 부딪힌다. 인덱스 크기가 커지고, 백업·복구 시간이 길어지며, 특정 쿼리의 응답 속도가 급격히 저하된다. 이 시점에서 고려하는 전략이 파티셔닝(P...
트랜잭션(Transaction)은 하나의 논리적 작업 단위를 보장하기 위한 DB 기능이다. 여러 개의 SQL이 하나의 작업처럼 처리되며, 전부 성공하거나 전부 실패해야 한다. 결제, 정산, 포인트 차감처럼 데...