https://datarian.io/blog/good-sql-code?utm_source=home-copy&utm_medium=home-copy
SQL 가독성을 높이는 다섯 가지 사소한 습관
지독하게 읽기 힘든 SQL문을 해석해 본 적 있으신가요?
datarian.io
<아티클 내용 요약>
- SQL은 띄어쓰기, 들여 쓰기에 거의 규칙이 없다시피 한 언어라서 자유롭다고 느낄 수 있지만 남이 써놓은 SQL문을 해독하면서 가독성이 좋지 않아 어려움을 느낄 수 있다.
1. 예약어는 대문자로
- SELECT, FROM 같은 SQL 예약어들을 대문자로 쓰는 습관이 좋다.
- SQL 언어를 지원하는 에디터를 쓰는 경우 예약어를 다른 색으로 하이라이팅 해서 대문자가 아니어도 잘 보이지만 에디터마다 하이라이팅 규칙이 다르고, 함수들 이름도 약간씩 달라 하이라이팅이 제대로 되지 않는 경우가 있다. 그래서 예약어, 함수 이름 등은 대문자로 써주는 습관을 가지면 좋다.
2. 행갈이를 자주 하자
- SELECT, FROM, GROUP BY 등 다른 절이 한 라인에 있는 코드보다는 절마다 행을 나누면 예약어만 눈으로 봐도 작성자의 의도와 코드의 구조를 알 수 있다.
3. 행갈이를 더 자주 하자
- 행갈이를 자주 하면 필요 없는 컬럼 혹은 절을 주석 처리해서 제외할 수 있다.
EX)
SELECT day
-- , time
, SUM(total_bill)
FROM tips
WHERE sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
-- , time
- WHERE절에서도 AND, OR이 붙을 때마다 행갈이를 해주면 주석 처리할 수 있어서 좋다.
4. 주석을 쓰자
- 주석으로 코드를 쓴 의도를 짤막하게라도 적어놓는 습관을 들이면 좋다. 특히 서브쿼리가 많아지고 코드가 길어질수록 각 코드 단락이 어떤 의도로 작성되었는지 디테일을 적어놓아야 다음에 이해할 수 있다.
- 주석은 서브쿼리 단위로 쓸 수도 있고, CASE, IF 등 조건문 또는 WHERE절 필터링 조건을 쓸 때도 좋다.
- 주석에 적으면 좋은 것
- 서브쿼리의 단위로 의미 적으면 좋다.
- 조건에 적은 주석의 경우, 단순히 ' 이 조건은 이거다 '라고 쓰면 컬럼 이름만 보고 해석을 할 때 오해를 할 수 있으니 추가 설명이 필요한 경우에는 적는 것이 좋다.
- 조건이 왜 필요한지, 어떻게 동작하는지 같은 디테일을 적어놓으면 추후에 코드를 이해할 때 도움을 준다.
5. ALIAS를 잘 쓰자
- 주석을 잘 적어 놓는 것도 중요하지만, 코드를 잘 써야 전체를 빠르게 이해할 수 있다.
- 서브쿼리, 컬럼 AILAS를 X, A, F 등으로 대충 쓰면 나중에 그 코드가 어떤 동작을 하는지 알기 위해 작성한 서브쿼리까지 가서 봐야 하는 불상사가 생긴다. 처음 작성할 때 변수명을 잘 써놓으면 나중에 튀어나와도 쉽게 알 수 있다.
- 어렵다면 구글에 ' 변수명 짓기 팁 '을 검색해서 알아보는 것도 좋다.
마무리
- 여러 규칙을 말했지만 가장 중요한 것은 같이 일하는 사람들과 합의된 규칙이다. 아무리 좋은 방법이라도 팀에서 사용하는 규칙에 위배된다면 사용하지 않는 것이 좋다.
- 코드를 작성할 때 나 말고 다른 사람도 이 코드를 볼 거라고 생각하면서 작성하고 정리하는 것이 중요하다.
<알게 된 개념>
- SQL을 사용하면서 내가 하는 습관도, 안 하는 습관도 있어서 신기했다. 행갈이 같은 경우에는 강의를 들으면서 강사님의 습관을 따라가 자연스럽게 했지만, 예약어 대문자는 안 하고 있었는데 예시를 보고 차이를 크게 느끼게 됐다.
그리고 주석에 대해 어렴풋이 알고 있었지만 추측으로 알고 있어서 애매했는데 이번에 잘 알 수 있었다. 쿼리문 앞에 ' -- '를 넣는 것이 주석인 것을 알았으니 앞으로 잘 활용해야겠다.
소소해 보이지만 SQL을 사용하면서 도움이 되는 ARTICLE을 읽을 수 있어 좋았다.
'데일리 미션 > Article' 카테고리의 다른 글
Article : 영리한 개발자와 현명한 개발자의 차이 (1) | 2023.12.20 |
---|---|
Article : 신입 PM에 대한 생각 (0) | 2023.12.19 |
Article : 데이터 분석가가 되어보니 중요한 것들 (1) | 2023.12.15 |
Article : 데이터 기반 의사 결정의 장점 (0) | 2023.12.14 |
Article : 데이터 시각화 101 - ③ 데이터 속 거짓말 발견하기 (0) | 2023.12.13 |