본문 바로가기
아티클 읽기

[아티클 스터디] 23.12.07

by doo_ 2023. 12. 7.

오늘의 아티클 : SQL 가독성을 높이는 다섯 가지 사소한 습관

[내용정리]

남이 작성한 SQL이 아니더라도 과거의 내가 작성한 SQL이 현재의 내 발목을 붙잡는 경우가 있다.

(예전에 작성한 SQL문을 나중에 다시 활용될 수도 있는 경우가 있기에)

-> 그래서 가독성 있는 SQL 코드를 쓸 수 있는 5가지 습관에 대해서 CHECK

 

1. 예약어는 대문자로 쓰는 습관
- SELECT, FROM, GROUP BY, HAVING, AS, AND 등과 같은 예약어들을 대문자로 쓰는 습관
* SQL 에디터 중에서 예약어, 칼럼, 테이블 등 하이라이팅을 해주기 때문에 굳이 일수도 있으나 에디터마다 하이라이팅 규칙이 다르고 DB종류마다 함수들 이름도 약간씩 다르기 때문에 대문자로 써주는 습관을 가지는 것이 좋다고 함.

2. 행갈이를 자주하자 -> 구조 파악 용이
EX) 

SELECT day, time, SUM(total_bill)
FROM tips
GROUP BY day, time

 

EX) 

SELECT day, time, SUM(total_bill) FROM tips GROUP BY day, time


> 위의 예시가 한 눈에 구조 파악하기 좋음


3. 행갈이를 더 자주하자
ex. 

SELECT day
     , time
     , SUM(total_bill)
FROM tips
WHERE sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
       , time

 

SELECT day, time, SUM(total_bill)
FROM tips
WHERE sex = 'Female' AND smoker = 'Yes'
GROUP BY day, time

 

> 이는 나중에 상황에 따라 주석 처리할 때 용이

ex. time을 잠깐 제외하는 경우

SELECT day
    -- , time
     , SUM(total_bill)
FROM tips
WHERE sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
      -- , time

이를 응용해서 어떤 분들은 where 절에 1=1 아무 의미없는 조건을 넣고 행갈이를 한다고 합니다.

SELECT day
     , time
     , SUM(total_bill)
FROM tips
WHERE 1 = 1
-- AND sex = 'Female'
AND smoker = 'Yes'
GROUP BY day
       , time

 

4. 주석을 쓰자

코드 쓴 의도를 짤막하게라도 적어놓는 습관을 들이는 게 좋다. 특히 서브쿼리가 많아지고 코드가 길어질수록 각 코드 단락이 어떤 의도로 작성되었는지 디테일을 적어놓아야 나중에 그 코드를 읽었을 때 더 쉽게 이해할 수 있다.

SELECT AVG(sales) avg_sales
FROM (
  -- 요일별 매출액 합계 계산
  SELECT day -- 일별 X 요일별 O
       , SUM(total_bill) sales
  FROM tips
  WHERE sex = 'Female' -- 결제자의 성별이 여성인 경우
  GROUP BY day
) daily_sales

다음과 같은 것들은 주석에 적어주면 좋다고 해요.

1) 서브쿼리의 단위로 의미를 적기

2) 조건에 적은 주석의 경우 단순히 '이 조건은 이거다(What)라고 서술하는 건 별로 의미가 없다. 그러나 칼럼 이름만 보고 해석에 오해가 있을 수 있으니 추가 설명이 필요한 경우에는 적어주는 것이 좋다.

3. 조건이 왜 필요한지(Why), 어떻게 동작하는지(How) 같은 디테일을 적어놓으면 추후 코드를 이해하는데 도움을 줌

 

5. Alias를 잘 쓰자

주석을 잘 적어놓는 것도 중요하지만, 결국 코드를 잘 써야 전체를 빠르게 이해할 수 있다. 서브쿼리, 컬럼 Alias를 x, y, t, df, a등으로 대충 쓰고 있다면..! 다음에 코드를 다시 볼 일이 생길 때 힘들 수 있음.

 

+) 여러 규칙에 대해 이야기를 했지만, 가장 중요한 것은 같이 일하는 사람들과의 합의된 규칙이라고 함.

+) 코드를 작성할 때 나 말고 누군가가 볼 거라고 생각하면서 작성하고 정리하는 것이 좋다고 함.

 

 

 

 

SQL 가독성을 높이는 다섯 가지 사소한 습관

지독하게 읽기 힘든 SQL문을 해석해 본 적 있으신가요?

datarian.io

 

'아티클 읽기' 카테고리의 다른 글

[아티클 스터디] 23.12.13  (0) 2023.12.13
[아티클 스터디] 23.12.12  (0) 2023.12.12
[아티클 스터디]23.12.11  (0) 2023.12.11
[아티클 스터디] 23.12.06  (0) 2023.12.06
[아티클 스터디] 23.12.05  (0) 2023.12.05