본문 바로가기
카테고리 없음

📌 SQL 가독성 높이기 2 - 줄 맞추는 습관이 만든 생산성

by 맘솔 2025. 5. 18.

 

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
, id
FROM 한 줄 아래, 테이블 + alias 정렬 FROM emp e
, orders o
WHERE 조건별 줄바꿈, AND는 위에 WHERE a = b
AND c = d
JOIN (Oracle) FROM 절 , 테이블 방식 + WHERE 조건 사용 FROM a, b
WHERE a.id = b.id
ORDER BY 맨 마지막 줄에 작성, 조건 1줄에 ORDER BY name DESC

 

✅ 마무리 – 생산성은 눈에 보이지 않는 ‘가독성’에서 시작됩니다

SQL을 잘 쓰는 것도 중요하지만, **“잘 읽히는 쿼리를 쓸 줄 아는 것”**은 실무에서 분명한 경쟁력이 됩니다.

오늘부터 한 줄씩 맞춰보는 습관,

시간이 쌓이면 어느새 **당신을 생산성 높은 실무자로 만들어줄 무기**가 되어 있을 것이라 생각합니다.