“회원가입을 했는데, 제 정보가 잘 들어갔는지 어떻게 믿을 수 있죠?”
“결제를 했는데, 그 기록이 서버에 정확히 남았는지 어떻게 확인할 수 있을까요?”
눈에 보이는 화면(UI) 테스트만으로는, 이러한 ‘데이터’의 정합성을 100% 보증할 수 없습니다. 서비스의 모든 진실은 보이지 않는 곳, 바로 ‘데이터베이스’ 안에 기록되기 때문입니다.
이번 글에서는 QA가 이 데이터베이스와 대화하는 언어, ‘SQL’의 기초에 대해 알아보겠습니다.

이 글에서 다루는 것
- 데이터베이스와 QA의 관계
- SQL이란 무엇인가?
- 데이터 검증을 위한 필수 SQL 명령어
- QA를 위한 SQL 활용 팁
데이터베이스, QA에게 왜 중요한가요?
데이터베이스는 서비스의 모든 정보가 저장되고 관리되는 ‘거대한 중앙 창고’입니다.
QA는 이 창고에 직접 들어가, “사용자가 입력한 정보가 정확한 위치에, 올바른 형태로 잘 보관되었는지”를 직접 눈으로 확인해야 할 책임이 있습니다. 이것이 바로 ‘그레이박스 테스트’의 핵심이자, 데이터 무결성을 보증하는 가장 확실한 방법입니다.
Q. 데이터베이스와 대화하는 언어, ‘SQL’이란 무엇인가요?
SQL(Structured Query Language)은 데이터베이스에게 데이터를 요청하고, 조작하고, 관리하기 위해 사용하는 ‘표준 언어’입니다.
- 비유:
- 데이터베이스가 ‘거대한 도서관’이라면, SQL은 사서에게 “컴퓨터 공학 섹션에서, 2020년 이후에 출판된, ‘자바’에 대한 책만 찾아주세요”라고 명확하게 요청하는 ‘질의 양식’과 같습니다.
Q. QA가 가장 많이 사용하는 SQL 명령어는 무엇인가요?
QA는 주로 데이터를 ‘조회’하고 ‘검증’하는 목적으로 SQL을 사용하므로, SELECT 구문을 가장 많이 사용하게 됩니다.
1. 데이터 조회하기 (SELECT, FROM)
SELECT는 어떤 ‘열(column)’을 가져올지, FROM은 어떤 ‘표(table)’에서 가져올지를 지정합니다.
- 예시:
users라는 테이블에서, 모든(*) 사용자의 정보를 조회하고 싶을 때
SQL
SELECT * FROM users;
2. 조건에 맞는 데이터만 골라보기 (WHERE)
WHERE는 특정 ‘조건’을 만족하는 데이터만 필터링하여 가져올 때 사용합니다.
- 예시:
users테이블에서,userId가 ‘testuser01’인 사용자 한 명의 정보만 조회하고 싶을 때
SQL
SELECT * FROM users WHERE userId = 'testuser01';
3. 여러 테이블의 데이터 연결하기 (JOIN)
JOIN은 여러 테이블에 흩어져 있는 데이터를, 특정 조건(예: 동일한 userId)을 기준으로 연결하여 함께 조회할 때 사용합니다.
- 예시:
users테이블과orders테이블을userId로 연결하여, 각 사용자가 어떤 주문을 했는지 함께 조회하고 싶을 때
SQL
SELECT *
FROM users u
JOIN orders o ON u.userId = o.userId
WHERE u.userId = 'testuser01';
현직자만 아는 QA를 위한 SQL 활용 꿀팁
꿀팁 1: COUNT(*)로 데이터 건수를 먼저 확인하라
데이터를 하나하나 비교하기 전에, SELECT COUNT(*) 쿼리를 사용하여 원본 데이터와 결과 데이터의 총 건수가 일치하는지 먼저 확인하세요. 이 간단한 검증만으로도 데이터 누락과 같은 심각한 문제를 빠르게 발견할 수 있습니다.
꿀팁 2: ORDER BY로 최신 데이터를 쉽게 확인하라
ORDER BY createdAt DESC 와 같은 구문을 쿼리 맨 뒤에 추가하면, 가장 최근에 생성된 데이터부터 정렬하여 볼 수 있습니다. 방금 내가 테스트한 데이터가 DB에 잘 들어갔는지 확인할 때 매우 유용합니다.
결론: 데이터로 말하는 QA의 무기
SQL은 QA가 개발자와 동등한 수준에서 데이터에 대해 논의하고, 화면 너머의 근본적인 문제를 찾아낼 수 있게 돕는 강력한 무기입니다.
UI 테스트를 통해 사용자의 ‘경험’을 검증하고, SQL을 통해 데이터의 ‘진실’을 검증할 때, 비로소 우리는 서비스의 품질을 완벽하게 보증할 수 있습니다. SQL 학습은 QA의 전문성을 한 단계 끌어올리는 최고의 투자입니다.
부록: QA를 위한 SQL 미니 체크리스트 ✅
- 회원가입 후,
users테이블에 신규 사용자 데이터가 정확히INSERT되었는가? - 회원 정보 수정 후, 해당 사용자의 데이터가 정확히
UPDATE되었는가? - 게시글 삭제 후,
posts테이블에서 해당 데이터가DELETE되었거나, ‘삭제 상태’로 변경되었는가? - 여러 테이블을
JOIN했을 때, 데이터의 누락이나 불일치는 없는가?
참고 자료 (References)
- SQLBolt (게임을 통해 SQL 기초를 배울 수 있는 해외 유명 학습 사이트)
- 프로그래머스 SQL 고득점 Kit (국내 개발자들을 위한 유명 SQL 문제 풀이 사이트)