SQL은 '잘 짜는 것' 도 중요하지만, '잘 읽히는 것'이 더 중요할 때 많습니다.
특히 실무에서는 쿼리의 **가독성**이 유지보수 속도, 협업의 효율, 코드 검수의 정확도까지 결정합니다.
❌ 가독성 낮은 실무 쿼리 예시
SELECT e.emp_id, e.name, d.dept_name, o.order_amount, o.order_date, p.product_name, p.category
FROM emp e, dept d, orders o, product p
WHERE e.dept_id = d.dept_id AND e.emp_id = o.emp_id AND o.product_id = p.product_id
AND o.order_status = '배송완료' AND o.order_date >= SYSDATE - 30 AND p.category != '기타'
ORDER BY o.order_date DESC;
▶ 이 쿼리는 실행은 되지만, **수정하거나 디버깅하기엔 부담이 큽니다.**
유지보수를 위해 이 쿼리를 꺼내 본다면, 작업하기에 앞서 쿼리를 읽는다기 보단
텍스트 암호를 해독해야 하는 단계가 먼저 일 수 있습니다.
그에 반해, 아래의 쿼리형태는 바로 읽혀지기 쉽습니다.
지금은 코드의 양(라인수)이 적었지만, 많아지면 그 여파는 더욱 커집니다.
✅ 수직 정렬된 SQL – 실무자용 읽기 구조
SELECT e.emp_id
, e.name
, d.dept_name
, o.order_amount
, o.order_date
, p.product_name
, p.category
FROM emp e
, dept d
, orders o
, product p
WHERE e.dept_id = d.dept_id
AND e.emp_id = o.emp_id
AND o.product_id = p.product_id
AND o.order_status = '배송완료'
AND o.order_date >= SYSDATE - 30
AND p.category != '기타'
ORDER BY o.order_date DESC
;
▶ 줄마다 논리 단위가 명확하고, 읽는 사람이 수정하기도 쉬워집니다.
▶ FROM ~ WHERE 절은 조건 순서나 컬럼별 구분이 바로 보이기 때문에, 협업 효율이 확연히 달라집니다.
⚠️ 주의: 익숙하지 않으면 '노가다'처럼 느껴집니다
줄 맞추는 습관은 처음엔 번거롭고 익숙하지 않아 시간을 더 잡아먹는 것처럼 보일 수 있습니다.
하지만 다음과 같은 변화가 생깁니다:
- ✔ 협업 중 쿼리 공유 시 상대방 반응이 “읽기 쉽네요”로 바뀜
- ✔ 디버깅 시 WHERE 조건이 **단독 줄로 되어 있어 빠르게 수정 가능**
- ✔ 테스트/수정 로그가 **Git에서도 줄 단위로 깔끔하게 확인 가능**
💡 이 작성 습관이 실무에서 경쟁력이 되는 이유
저는 이 스타일을 습관화한 이후로, 아래와 같은 **실질적인 변화**를 경험했습니다:
- 📌 오류 추적 시간 단축 (이전에는 WHERE 안의 조건 찾느라 5분씩 소요)
- 📌 후임자에게 넘길 때 쿼리 설명이 많이 줄어듬
- 📌 상급자 코드 리뷰 통과 속도 2배 빨라짐
결과적으로, **작성 → 테스트 → 유지보수 전체 시간이 단축**되고
나중에는 "어? 이건 누가 짠 쿼리야, 깔끔하네"라는 피드백도 받게 됐습니다.
📝 줄 맞추기 습관을 위한 SQL 작성 규칙 요약표
구문 | 작성 규칙 | 예시 |
---|---|---|
SELECT | 맨 앞에, 이후 컬럼은 줄 맞춰 콤마 앞 | SELECT name |
FROM | 한 줄 아래, 테이블 + alias 정렬 | FROM emp e |
WHERE | 조건별 줄바꿈, AND는 위에 | WHERE a = b |
JOIN (Oracle) | FROM 절 , 테이블 방식 + WHERE 조건 사용 | FROM a, b |
ORDER BY | 맨 마지막 줄에 작성, 조건 1줄에 | ORDER BY name DESC |
✅ 마무리 – 생산성은 눈에 보이지 않는 ‘가독성’에서 시작됩니다
SQL을 잘 쓰는 것도 중요하지만, **“잘 읽히는 쿼리를 쓸 줄 아는 것”**은 실무에서 분명한 경쟁력이 됩니다.
오늘부터 한 줄씩 맞춰보는 습관,
시간이 쌓이면 어느새 **당신을 생산성 높은 실무자로 만들어줄 무기**가 되어 있을 것이라 생각합니다.