카테고리 없음

📊 [SQL] 제45장 - 초보 개발자가 가장 자주 하는 SQL 실수

강릉바다의 블로그 2026. 7. 31. 10:34

 

제45장. 초보 개발자가 가장 자주 하는 SQL 실수

"문법보다 중요한 것은 실수를 예방하는 습관입니다."


학습 목표

이번 장을 학습하면 다음 내용을 할 수 있습니다.

  • 실무에서 자주 발생하는 SQL 실수를 설명할 수 있다.
  • UPDATE와 DELETE 실행 전에 반드시 확인해야 할 사항을 설명할 수 있다.
  • 안전하게 SQL을 실행하는 순서를 익힐 수 있다.
  • 실수를 예방하는 개발자의 습관을 기를 수 있다.

문법을 안다고 실수를 하지 않을까요?

SQL 문법을 모두 알고 있어도

실무에서는 작은 실수 하나가 큰 사고로 이어질 수 있습니다.

예를 들어

DELETE FROM Customers;

문법은 맞습니다.

하지만 정말 실행해도 될까요?

이 명령은 Customers 테이블의 모든 데이터를 삭제합니다.

문법보다 더 중요한 것은

"이 SQL이 어떤 결과를 만들 것인가?"

를 먼저 생각하는 습관입니다.


실수 ① WHERE를 빼먹는다

가장 많이 발생하는 실수입니다.

다음 SQL을 살펴봅시다.

UPDATE Products
SET Price = Price * 1.1;

모든 상품 가격이

10% 인상됩니다.

만약

한 상품만 수정하려고 했다면

반드시

UPDATE Products
SET Price = Price * 1.1
WHERE ProductID = 5;

처럼 WHERE를 작성해야 합니다.


실수 ② DELETE 전에 확인하지 않는다

다음 SQL은

DELETE FROM Orders
WHERE CustomerID = 10;

고객의 주문을 삭제합니다.

그런데

정말 몇 개가 삭제될까요?

실무에서는

삭제하기 전에

먼저

SELECT *
FROM Orders
WHERE CustomerID = 10;

을 실행하여

삭제될 데이터를 확인합니다.

확인이 끝난 후

DELETE를 실행하는 것이 안전합니다.


실수 ③ UPDATE 전에 백업하지 않는다

가격을 수정한다고 가정해 봅시다.

UPDATE Products
SET Price = Price * 0.8;

모든 상품 가격이

20% 할인됩니다.

그런데

실수였다면 어떻게 될까요?

이럴 때를 대비하여

실무에서는

  • 백업을 먼저 수행하거나
  • 트랜잭션을 사용하여
  • 문제가 생기면 ROLLBACK을 실행합니다.

실수 ④ SELECT로 먼저 확인하지 않는다

다음 SQL은

UPDATE Customers
SET City='Seoul'
WHERE Country='Korea';

입니다.

실무에서는

바로 UPDATE를 실행하지 않습니다.

먼저

SELECT *
FROM Customers
WHERE Country='Korea';

를 실행하여

수정될 행을 확인합니다.

확인이 끝난 후

같은 조건으로 UPDATE를 실행합니다.


실수 ⑤ 중요한 SQL을 너무 서둘러 실행한다

실무에서는

Enter 키를 누르는 순간

수천 개의 데이터가 변경될 수도 있습니다.

그래서

숙련된 개발자일수록

SQL을 한 번 더 읽어봅니다.

특히

  • WHERE가 있는가?
  • 조건이 맞는가?
  • 실행 대상이 맞는가?

를 마지막으로 확인합니다.


안전하게 SQL을 실행하는 순서

① SELECT로 먼저 확인
↓
② 필요한 행인지 검토
↓
③ UPDATE 또는 DELETE 실행
↓
④ 결과 확인
↓
⑤ COMMIT

이 순서를 습관처럼 지키면

대부분의 실수를 예방할 수 있습니다.


실제 업무에서는?

쇼핑몰에서

모든 상품 가격을 수정한다고 생각해 봅시다.

실수로

UPDATE Products
SET Price = 1000;

을 실행하면

모든 상품 가격이

1,000원으로 변경됩니다.

이러한 사고는 실제 현장에서도 종종 발생합니다.

그래서 많은 회사에서는

  • 운영 서버에서 직접 작업하지 않기
  • 테스트 서버에서 먼저 실행하기
  • 다른 개발자의 검토 받기
  • 트랜잭션 활용하기

와 같은 절차를 마련해 두고 있습니다.


많이 하는 실수

실수 ①

SQL을 작성하자마자 바로 실행한다.

→ 먼저 SELECT로 결과를 확인합니다.


실수 ②

WHERE를 빼먹는다.

→ UPDATE와 DELETE에서는 가장 먼저 WHERE를 확인합니다.


실수 ③

백업이나 트랜잭션 없이 중요한 작업을 수행한다.

→ 문제가 생기면 되돌릴 방법이 있는지 먼저 확인합니다.


실수 ④

실행 결과를 확인하지 않는다.

→ 영향을 받은 행(Row)의 개수를 반드시 확인합니다.


한눈에 정리

좋은 습관 이유
SELECT로 먼저 확인 변경될 데이터를 미리 확인할 수 있다.
WHERE 확인 전체 데이터 변경을 예방한다.
트랜잭션 사용 문제가 생기면 되돌릴 수 있다.
결과 확인 예상대로 실행되었는지 검증할 수 있다.
중요한 작업은 천천히 작은 실수가 큰 사고를 막는다.

이번 장 핵심 정리

✅ SQL 문법보다 중요한 것은 안전하게 실행하는 습관이다.

✅ UPDATE와 DELETE는 WHERE를 반드시 확인한다.

✅ 먼저 SELECT로 대상 데이터를 확인한 후 실행한다.

✅ 중요한 작업은 트랜잭션과 백업을 함께 고려한다.

✅ 실행 후에는 반드시 결과를 확인한다.


연습 문제

기본 문제

① UPDATE를 실행하기 전에 먼저 실행하면 좋은 SQL은 무엇인가요?

② DELETE 실행 전에 확인해야 하는 가장 중요한 절은 무엇인가요?

③ 트랜잭션을 사용하는 이유를 한 문장으로 설명해 보세요.


응용 문제

다음 SQL의 문제점을 설명하세요.

DELETE FROM Customers;

그리고 안전하게 수정해 보세요.


도전 문제

다음 순서를 올바르게 배열해 보세요.

  • UPDATE 실행
  • SELECT로 대상 확인
  • 결과 확인
  • COMMIT

정답

기본 문제

SELECT

으로 변경될 데이터를 먼저 확인합니다.

WHERE 절입니다.

여러 SQL을 하나의 작업으로 처리하여 문제가 생기면 되돌릴 수 있기 때문입니다.


도전 문제

올바른 순서는 다음과 같습니다.

SELECT 확인
↓
UPDATE 실행
↓
결과 확인
↓
COMMIT

💡 실무 이야기

실무에서는 뛰어난 개발자를 SQL 문법을 많이 아는 사람보다 실수를 만들지 않는 사람으로 평가하는 경우가 많습니다.

특히 데이터베이스는 한 번의 실수로 수천, 수만 건의 데이터가 변경될 수 있기 때문에, 경험이 많은 개발자일수록 SQL을 빠르게 작성하기보다 신중하게 검토하는 습관을 중요하게 생각합니다.


✨ 다음 장 예고

다음 장에서는 지금까지 배운 모든 내용을 종합하여 실제 업무를 가정한 미니 프로젝트를 수행해 보겠습니다.

고객 조회, 상품 관리, 주문 등록, 수정, 삭제, 통계 조회, 트랜잭션까지 하나의 시나리오 안에서 활용하며 SQL의 전체 흐름을 완성해 보겠습니다.