본문 바로가기
IT적응기

SQL 독학 (업무 자동화, 데이터 문해력, 실무 적용)

by IT적응기 2026. 7. 15.

SQL 독학 (업무 자동화, 데이터 문해력, 실무 적용)
SQL 독학 (업무 자동화, 데이터 문해력, 실무 적용)

솔직히 저는 SQL이 개발자들만 쓰는 언어인 줄 알았습니다. 매달 말 마케팅팀 요청이 쌓일 때마다 데이터팀 눈치를 보면서 기다리던 시간이 꽤 길었어요. 그러다 퇴근 후 한 시간짜리 SQLZOO 연습이 그 흐름을 완전히 바꿔놨습니다. SELECT, WHERE, GROUP BY 세 가지만 익혀도 반복 보고서의 80%는 직접 처리할 수 있다는 게 저도 처음엔 믿기지 않았는데, 2주 만에 실제로 확인했습니다.



업무 자동화가 절실해진 순간

매달 말이면 같은 상황이 반복됐습니다. 마케팅팀에서 "이번 달 신규 가입자 수랑 결제 전환율 뽑아줄 수 있어요?"라는 메시지가 오면, 저는 데이터팀에 요청 티켓을 올리고 기다려야 했습니다. 짧으면 반나절, 바쁜 시기엔 이틀. 급한 보고 자료인데 순서를 기다리는 건 꽤 답답한 일이었어요.

더 문제는 막상 받은 데이터가 제가 원하던 조건과 조금 달라서 다시 요청하는 상황이었습니다. "이번엔 기간을 지난달 1일부터 말일까지로 바꿔주실 수 있을까요?" 같은 재요청이 반복되면, 데이터팀도 저도 서로 지치기 마련입니다.

그러다 사내 스터디에서 이런 이야기를 들었습니다. SELECT, WHERE, GROUP BY만 알아도 자주 쓰는 리포트의 80%는 직접 뽑을 수 있다고요. 여기서 SELECT란 데이터베이스 테이블에서 원하는 컬럼(열)을 골라 가져오는 명령어입니다. 쉽게 말해 "이 표에서 이 항목만 보여줘"라고 지시하는 가장 기본적인 SQL 문법이죠. WHERE는 조건 필터링, GROUP BY는 특정 기준으로 데이터를 묶어 집계할 때 씁니다.

저는 그날 저녁 바로 SQLZOO에 접속했습니다. 브라우저에서 바로 쿼리를 입력하고 결과를 확인할 수 있는 구조라 진입 장벽이 낮았고, 설치할 것도 없었어요. 처음 며칠은 SELECT와 WHERE 조합만 반복했는데, 생각보다 금방 손에 익었습니다.

  • SELECT: 테이블에서 필요한 컬럼만 가져오는 기본 명령어
  • WHERE: 조건을 지정해 원하는 행(row)만 필터링하는 절
  • GROUP BY: 특정 기준으로 데이터를 묶고 COUNT, SUM 같은 집계 함수와 함께 사용
  • JOIN: 두 개 이상의 테이블을 연결해 하나의 결과로 합치는 방법
요약: 데이터 요청-대기 반복의 고통이 SQL 독학의 출발점이 됐고, SELECT·WHERE·GROUP BY 세 가지가 업무 자동화의 핵심 시작점입니다.

 

데이터 문해력, 어디까지가 현업의 몫인가

2주 정도 지나니 간단한 매출 집계나 사용자 수 조회는 데이터팀 도움 없이 직접 처리할 수 있게 됐습니다. 요청-대기 시간이 사라지니 보고서 작성 속도가 눈에 띄게 달라졌어요. 이걸 경험하고 나서 "SQL을 배우면 데이터팀이 필요 없어지는 것 아니냐"는 생각이 잠깐 들기도 했는데, 그건 완전히 틀린 판단이었습니다.

제가 직접 써봤는데, 초기에 만든 리포트에서 JOIN 조건을 잘못 잡아 매출이 두 배로 부풀려진 적이 있었습니다. JOIN이란 두 개 이상의 테이블을 특정 키(key) 값을 기준으로 연결해 하나의 결과로 합치는 SQL 문법입니다. 쉽게 말해 "주문 테이블"과 "회원 테이블"을 회원 ID로 연결해서 "누가 무엇을 샀는지" 한 번에 보는 방식이죠. 그런데 조인 조건을 잘못 설정하면 데이터가 카르테시안 곱(Cartesian Product), 즉 모든 행이 서로 곱해지는 방식으로 중복 집계돼 숫자가 실제보다 크게 불어납니다. 그 리포트는 데이터팀 검수를 거치고 나서야 문제를 발견했습니다.

그 경험 이후 저는 SQL 학습을 다르게 정의하게 됐습니다. 데이터팀을 대체하는 능력이 아니라, 데이터팀과 제대로 대화할 수 있는 최소한의 데이터 문해력(Data Literacy)을 갖추는 것. 여기서 데이터 문해력이란 데이터를 읽고, 해석하고, 질문을 던질 수 있는 기초 역량을 의미합니다. 전문 분석가처럼 모델링까지 할 필요는 없고, "이 숫자가 왜 이렇게 나왔는지"를 스스로 한 번 짚어볼 수 있는 수준이면 충분합니다.

W3Schools SQL Tutorial에서는 기본 문법을 단계별로 확인할 수 있고, 실제로 저도 JOIN 개념을 다시 정리할 때 이 사이트의 예제를 여러 번 참고했습니다. 문법 레퍼런스로 옆에 열어두기 좋은 곳입니다.

요약: SQL은 데이터팀 대체 수단이 아니라 데이터 문해력을 높이는 도구이며, JOIN 같은 고급 문법은 반드시 검수 과정을 병행해야 실수를 줄일 수 있습니다.

 

실무 적용, 온라인 강의만으로는 부족한 이유

SQLZOO나 W3Schools에서 배운 문법이 실무에서 그대로 통하지 않는 경우가 종종 있습니다. 제 경험상 이건 좀 다릅니다. 온라인 실습 환경은 깔끔하게 설계된 예제 테이블을 씁니다. 컬럼 이름도 직관적이고, 데이터도 가공돼 있어요. 반면 실제 회사 데이터베이스(DB)는 테이블 네이밍 규칙부터 다릅니다.

예를 들어 회원 테이블이 "users"가 아니라 "tb_mbr_info"처럼 사내 규칙을 따르는 경우가 많고, 특정 컬럼에 어떤 값이 들어가는지는 스키마(Schema)를 봐야 알 수 있습니다. 스키마란 데이터베이스 테이블의 구조를 정의한 설계도로, 어떤 컬럼이 있고 각 컬럼에 어떤 타입의 데이터가 들어오는지를 명시한 문서입니다. 이 스키마를 모르면 SELECT를 아무리 잘 써도 엉뚱한 컬럼을 가져오거나 조건을 잘못 달 수 있습니다.

그래서 저는 지금도 Redash나 Metabase 같은 BI(Business Intelligence) 툴의 쿼리 히스토리와 사내 데이터 위키를 병행해서 씁니다. BI 툴이란 비개발자도 데이터베이스에 쿼리를 날리고 결과를 시각화할 수 있도록 만든 분석 인터페이스입니다. 기존에 데이터팀이 만들어 둔 쿼리를 열어보면 실제 테이블 구조와 네이밍 규칙을 한 번에 파악할 수 있어서, 처음 실무 쿼리를 짤 때 최고의 레퍼런스가 됩니다.

한국어로 SQL 기초를 다지고 싶다면 생활코딩 데이터베이스 강좌가 꽤 유용합니다. 개념 설명이 친절하고 실습 예제도 충분해서, 처음 SQL을 접하는 분이라면 여기서 기반을 잡고 SQLZOO로 연습량을 채우는 순서를 권합니다. 저도 초반에 이 순서로 진행했고, 이후에 사내 문서와 대조하면서 실무 감각을 올렸습니다.

요약: 온라인 강의 문법과 실무 DB 환경은 다르므로, 사내 스키마와 BI 툴 쿼리 히스토리를 반드시 병행해야 실수를 줄이고 빠르게 실전에 적용할 수 있습니다.

 

자주 묻는 질문

Q. 비개발자도 SQL을 실무에서 쓸 수 있나요?

A. 충분히 가능합니다. SELECT, WHERE, GROUP BY 세 가지만 익혀도 반복적인 매출 집계나 사용자 수 조회 같은 리포트는 직접 처리할 수 있습니다. 저도 개발 배경 없이 퇴근 후 2주 연습으로 간단한 보고서를 직접 뽑기 시작했습니다. 단, 처음에는 데이터팀 검수를 꼭 받는 게 좋습니다.

 

Q. SQL 독학, 어디서 시작하면 되나요?

A. 한국어로 개념을 먼저 잡으려면 생활코딩 데이터베이스 강좌가 좋고, 실습 반복은 SQLZOO가 효과적입니다. 문법 레퍼런스로는 W3Schools SQL Tutorial을 옆에 열어두면 편합니다. 개념 → 반복 실습 → 사내 실무 쿼리 분석 순서로 진행하면 가장 빠르게 실력이 붙습니다.

 

Q. JOIN을 쓰다가 숫자가 이상하게 나오는 건 왜 그런가요?

A. JOIN 조건을 잘못 설정하면 카르테시안 곱이 발생해 데이터 행이 의도보다 훨씬 많이 생성됩니다. 이때 SUM이나 COUNT 같은 집계 함수를 쓰면 숫자가 실제보다 크게 부풀려집니다. 저도 처음 만든 매출 리포트에서 이 실수를 한 적 있는데, 조인 키가 1:N 관계인지 N:N 관계인지를 먼저 확인하는 습관을 들이면 이런 실수를 많이 줄일 수 있습니다.

 

Q. 온라인 강의에서 배운 문법을 회사 DB에 바로 쓸 수 있나요?

A. 문법 자체는 대부분 통하지만, 테이블 이름과 컬럼 구조는 회사마다 다릅니다. 실무에 처음 적용할 때는 사내 데이터 위키나 Redash, Metabase 같은 BI 툴에 저장된 기존 쿼리를 먼저 읽어보는 게 훨씬 빠릅니다. 스키마 구조를 파악하지 않은 채 쿼리를 짜면 엉뚱한 결과가 나올 수 있습니다.

 

결론

SQL을 배우고 나서 가장 크게 달라진 건 속도가 아니라 자신감이었습니다. 데이터팀에 요청 메시지를 보내기 전에, 제가 원하는 게 정확히 무엇인지 쿼리로 먼저 써볼 수 있게 됐거든요. 그러다 보니 요청 자체가 훨씬 구체적이 됐고, 데이터팀과의 소통도 빨라졌습니다.

다만 SELECT부터 시작해서 JOIN까지 익히는 과정에서 실수는 반드시 납니다. 저도 매출이 두 배로 부풀려진 리포트를 만들었고, 그 경험이 오히려 데이터 구조를 꼼꼼히 보는 습관을 만들어줬습니다. SQL을 "데이터팀 대체 도구"가 아니라 "데이터팀과 협업하는 언어"로 접근하면, 배우는 속도도 빠르고 실수 이후 회복도 훨씬 부드럽습니다. 처음 시작한다면 오늘 저녁 SQLZOO 한 챕터부터 열어보는 걸 권합니다.

참고: SQLZOO · W3Schools SQL Tutorial · 생활코딩 데이터베이스 강좌


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 깜짝,황금이 아빠 IT적응기

서치어드바이저