전체 글 104

반복 SQL 자동화 팁

"매일 아침 어제 주문 현황 엑셀로 뽑아주세요."매일 똑같은 작업 반복 중입니다. 작은 자동화로 큰 차이를 만듭니다.레거시 시스템에는 "자동 리포트" 기능이 없는 경우가 많습니다. 담당자가 매일 phpMyAdmin에 들어가서 쿼리 복사 => 실행 => 결과 복사 => 엑셀에 붙여넣기를 반복합니다. 하루 10분씩 소모, 1년이면 60시간입니다.간단 PHP 스크립트로 자동화예제 1: 매일 주문 현황 CSV 생성daily_report.phpcron으로 매일 실행0 9 * * * /usr/bin/php /path/to/daily_report.php매일 오전 9시에 자동 실행되며 CSV 파일 생성예제 2: 이메일로 자동 발송 $filename]);?>예제 3: 엑셀 파일 생성 (PHPExcel)require 'P..

PHP 실무 2026.10.23

기술 전문가는 ‘고치지 않고도 지켜내는 방법’을 안다

"이번 달도 문제없이 잘 돌아갔네요."유지보수 보고서를 받으면 늘 이 문장이 있습니다. 처음엔 "그럼 이번 달엔 아무것도 안 한 건가?" 싶었습니다. 하지만 이게 바로 진짜 전문가의 실력입니다. 문제가 안 생기게 만드는 것.고장 나서 고치는 건 누구나 합니다. 고장 안 나게 지키는 게 진짜 기술입니다.예방의 기술이 왜 중요할까요?문제가 터지기 전에 막으면 비용이 1/10입니다. 작은 경고 신호를 미리 잡아서 조치하면 몇만 원이지만, 터지고 나서 복구하면 몇백만 원입니다.고객은 아무것도 모르게 지나갑니다. 장애가 없으니 불만도 없고, 이탈도 없습니다. 조용히, 안정적으로 비즈니스가 돌아갑니다.대표님이 편히 주무십니다. "혹시 사이트 다운되면 어쩌지?" 걱정 없이 본업에 집중할 수 있습니다.실제 사례를 봅시..

PHP 유지보수 2026.10.20

DB 직접 수정 전 필수 백업 팁

"DELETE 쿼리에 WHERE 조건 안 썼는데 엔터 쳐버렸어요…"테이블 전체가 사라졌습니다. 회사 업무가 마비됐죠. 작은 수고가 회사를 구합니다.DB 직접 수정은 위험합니다. SQL 한 줄 실수로 수천, 수만 건 데이터가 날아갑니다. phpMyAdmin, MySQL Workbench 같은 도구는 편리하지만, "실행 취소" 버튼이 없습니다. 한 번 날아가면 끝입니다.백업 단계별 가이드1단계: 테이블 단위 백업특정 테이블만 수정한다면:-- 백업 테이블 생성CREATE TABLE users_backup AS SELECT * FROM users;복원:DROP TABLE users;RENAME TABLE users_backup TO users;2단계: mysqldump로 전체 백업mysqldump -u root..

PHP 실무 2026.10.16

유지보수 계약서에 반드시 포함되어야 할 항목 5가지

유지보수 계약을 맺기로 했습니다.업체에서 계약서를 보내왔는데, A4 용지 3장짜리입니다. 법률 용어가 가득하고, 뭔가 중요해 보이는데 정확히 뭘 보장하는지 애매합니다."그냥 서명하고 시작할까?" 하고 넘어가기 쉽지만, 잠깐만요. 계약서는 나중에 문제 생겼을 때 유일한 보호막입니다. 제대로 확인하고 넘어가야 합니다.유지보수 계약서가 중요한 이유는 "책임 범위"를 명확히 하기 때문입니다."이건 해주고, 저건 안 해주고"가 분명해야, 나중에 "계약에 없던 일"이라며 추가 비용 청구당하는 일이 없습니다.또한 "긴급 상황 대응", "업무 시간", "비용 정산 방식" 같은 것들이 명확해야 안심하고 맡길 수 있습니다.한 회사는 월 30만 원에 유지보수 계약을 맺었는데, 계약서가 너무 간단했습니다.월 30만 원에 시스..

PHP 유지보수 2026.10.13

사소한 수정이 시스템 전체에 미친 파장

"버튼 색깔만 좀 바꿔주세요."5분이면 끝날 일이라 생각했습니다. CSS 파일 열어서 background: red 하나만 바꿨죠.그런데 그 버튼이 결제 흐름 전체를 깨뜨렸습니다. 작은 수정도 위험하다는 걸, 그날 뼈저리게 배웠습니다.오래된 쇼핑몰이었습니다. 결제 프로세스가 여러 단계로 나뉘어 있었고, 각 단계마다 "다음" 버튼이 있었죠. 고객이 "빨간색으로 바꿔달라"고 해서, CSS에서 .btn-next 클래스의 배경색을 빨강으로 바꿨습니다.그런데 문제는, 같은 .btn-next 클래스가 관리자 페이지의 "상품 등록" 버튼에도 쓰이고 있었다는 점입니다. 그리고 그 버튼 색깔이 JavaScript 조건문에 걸려 있었습니다.// 오래된 레거시 코드if ($('.btn-next').css('background..

PHP 실무 2026.10.09

협력사/고객이 홈페이지를 볼 수 없을 때 생기는 기회비용

"대표님, 오늘 오후 2시에 대형 거래처 담당자가 우리 홈페이지에서 견적서 다운받기로 했는데, 지금 사이트가 안 열려요!"이런 보고를 받으면 식은땀이 납니다. 준비한 미팅, 기대하던 계약, 모든 게 사이트 하나 때문에 흔들립니다.B2B 비즈니스에서 홈페이지 다운타임은 단순한 "불편"이 아니라, 직접적인 "기회 상실"입니다.협력사/고객이 사이트에 접속 못 할 때 생기는 기회비용은 매출 손실보다 더 클 수 있습니다.계약 파기 위험. 대형 거래처는 "시스템 안정성"을 중요하게 봅니다. 홈페이지도 제대로 관리 못 하는 회사와 장기 계약을 맺고 싶어 하지 않습니다.신뢰 손실입니다. 한 번의 실수가 몇 년간 쌓아온 신뢰를 무너뜨립니다.경쟁사 이탈입니다. 우리 사이트가 안 열리면, 고객은 경쟁사로 갑니다. 그리고 다..

PHP 유지보수 2026.10.06

MySQL → MariaDB 전환 이슈

DB 엔진 차이로 서비스가 다운됐습니다. "MySQL이랑 똑같다며?"라고 생각했는데, 미묘한 차이 하나가 전체 쿼리를 멈췄죠. 작은 엔진 차이가 큰 장애를 유발합니다.MariaDB는 MySQL의 포크(fork) 버전으로, MySQL 창시자가 Oracle 인수 후 만든 오픈소스 DB입니다. 대부분의 경우 MySQL과 호환되지만, 100% 동일하진 않습니다.특히 특정 함수, 스토리지 엔진, 옵티마이저 동작에서 차이가 있어서, 무심코 전환했다가 쿼리 오류나 성능 저하를 겪는 경우가 많습니다.실제로 어떤 쇼핑몰은 호스팅 업체가 MySQL 5.5에서 MariaDB 10.x로 일방적으로 전환하면서, GROUP BY 쿼리가 전부 에러를 일으켰습니다. MySQL 5.5는 느슨했지만, MariaDB는 ONLY_FULL_..

PHP 실무 2026.10.02

"에러 한 줄쯤이야"가 매출에 미치는 영향

홈페이지를 보다가 화면 상단에 Warning: Undefined variable in line 234... 같은 메시지가 떠 있는 걸 본 적 있으신가요?개발자에게 물어보면 "기능엔 문제없습니다. 그냥 경고 메시지예요"라고 답합니다.실제로 사이트는 작동합니다. 그래서 "나중에 고치지 뭐" 하고 넘어갑니다.하지만 고객 눈엔 어떻게 보일까요?작은 에러 메시지가 비즈니스에 미치는 영향은 생각보다 큽니다.첫째, 불신을 줍니다. 고객은 기술을 모릅니다. "Warning"이 무슨 뜻인지, 치명적인 건지 아닌지 모릅니다. 그냥 "뭔가 잘못됐구나", "이 사이트 관리 안 되나?" 하고 느낍니다.둘째, 불안감을 줍니다. 특히 결제 페이지에서 에러 메시지가 뜨면, "여기 카드번호 입력해도 되나?" 하는 의심이 듭니다.셋째,..

PHP 유지보수 2026.09.29

.htaccess 접근 제한 팁

관리자 페이지가 외부에 다 노출된 사례를 봤습니다. /admin URL만 알면 누구나 접속 가능했죠. 간단한 조치로 큰 보안 효과를 낼 수 있습니다..htaccess 파일은 Apache 웹서버의 디렉토리별 설정파일입니다. 작은 텍스트 파일 하나로 URL 리다이렉션, 접근 제어, 캐싱, 에러 페이지 등을 간단히 설정할 수 있죠. 레거시 PHP 사이트 대부분이 이 파일로 보안과 기능을 관리합니다.문제는 이 파일의 존재와 중요성을 모르는 관리자가 많다는 점입니다. 실제로 어떤 쇼핑몰은 /admin 디렉토리에 아무 제한 없이 관리자 페이지가 열려 있었고, 구글에 "site:example.com admin"으로 검색하면 바로 나왔습니다. 누구나 관리자 로그인 페이지에 접속할 수 있었죠. 다행히 비밀번호가 뚫리진 ..

PHP 실무 2026.09.25

홈페이지 해킹, 생각보다 가까이 있다

"우리 같은 작은 회사를 누가 해킹하겠어요?"많은 대표님들이 이렇게 생각하십니다. 대기업도 아니고, 개인정보도 많지 않고, 특별히 중요한 데이터도 없는데 해커가 관심이나 있겠냐는 겁니다.하지만 현실은 다릅니다. 해킹은 대기업만의 문제가 아닙니다. 오히려 보안이 허술한 중소기업이 더 쉬운 타깃이 됩니다.홈페이지 해킹이 비즈니스에 미치는 영향은 생각보다 큽니다.고객 개인정보가 유출되면 법적 책임이 따릅니다. 개인정보보호법에 따라 과태료가 부과되고, 피해 고객에게 보상해야 할 수도 있습니다. 중소기업에게 수천만 원의 과태료는 치명적입니다.사이트가 스팸 사이트로 전락합니다. 해커들은 홈페이지를 불법 도박 사이트나 성인 사이트 광고판으로 바꿔버립니다. 고객이 접속했다가 "이게 무슨 사이트야?" 하며 놀라서 나갑니..

PHP 유지보수 2026.09.22