[내일배움캠프 사전캠프] SQLD란? 모델링의 정의/ 코딩&아티클 스터디

sleekstar·2025년 4월 30일

SQL(Structured Query Language): 데이터베이스를 조작할 수 있는 언어

모델링

현실세계의 모습들을 추상화하여 표현한 것. 데이터모델링은 실제로 데이터베이스를 만들기 전에 설계하는 것과 같다.

데이터모델링의 정의

-정보 시스템 구축을 위해 데이터 관점의 업무를 분석하는 과정
-현실 세계의 데이터를 약속된 표기법에 의해 표현하는 과정
-데이터베이스를 구축하기 위한 분석 및 설계의 과정
*시스템을 구현할 때뿐 아니라, 업무를 계획하는 단계에서도 데이터 모델링은 필요하다

데이터모델링의 특징 3가지

추상화, 단순화, 명확화

데이터모델링의 단계

데이터모델링의 관점 3가지

데이터 관점(어떤 데이터와 관련 있는지), 프로세스 관리(무엇을 해야 하는지/ 시나리오 분석), 데이터와 프로세스의 상관 관점

코딩 스터디

LOL을 하다가 홧병이 나서 병원을 찾아왔습니다.
**keyword: 날짜 함수

어제 GROUP BY 문법을 조금 연습해둔 덕에 오늘은 조금 수월하게 코드를 작성해볼 수 있었다.

오늘 주로 학습한 부분은 날짜 함수. 전에 날짜 간의 차이를 계산해주는 DATEDIFF(시작 날짜, 끝 날짜) 함수, 현재 날짜 데이터를 불러오는 CURDATE() 함수를 쓰는 문제도 풀었는데 오늘은 새로운 날짜 함수가 나왔다.
특정한 시간을 기준으로 더하거나 빼야할 때의 함수가 존재함을 알았다.
오늘 쓴 것은 DATE_SUB(CURDATE(), INTERVAL 5 YEAR)이었다. 현재 날짜 기준으로 5년을 뺀 기간을 계산하는 함수다.
비슷한 함수로 SUBDATE(), SUBTIME()이 있는 것 같은데 표현 방식이 약간 달랐다.

SUBDATE(date, INTERVAL value unit)
SUBTIME(datetime, addtime)

더하는 함수는 DATE_ADD였다. 다양한 날짜 함수를 구글링하여 더 찾아볼 수 있었다.

아티클 스터디

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

[주제]

SQL 가독성을 높이는 5가지 방법

  1. 예약어는 대문자로
  2. 행갈이를 자주 하자
  3. 행갈이를 더 자주 하자
  4. 주석을 쓰자
  5. Alias를 잘 쓰자

[아티클 요약]
SQL은 띄어쓰기, 들여쓰기에 거의 규칙이 없기에 자유롭지만, 그만큼 가독성이 떨어지는 코드를 쓰게 되기 쉽다. 다섯 가지 습관을 들여놓으면 가독성 좋은 코드를 쓸 수 있을 것이다.

  1. 예약어는 대문자로
    예약어는 select, from, group by와 같은 것들이다. 예약어나 함수는 대문자로 쓰는 것이 더 잘 읽힌다.

  2. 행갈이를 자주 하자
    라인마다 절을 구분하여 써 주는 습관을 들이자. 맨 앞의 예약만 보아도 작성자의 의도와 코드 구조를 쉽게 파악할 수 있다.

  3. 행갈이를 더 자주 하자
    예약어를 기준으로 행갈이를 하는 것을 기본으로, 더 자주 행갈이를 해 주는 것이 좋다. 쉼표가 있을 때마다, 혹은 WHERE절에서도 ANDOR 이 붙을 때마다 행갈이를 해 주면, 코드를 수정할 때 편하다.
    WHERE 절이 시작하자마자 1=1이라는 아무 의미 없는 조건을 넣어주고 행갈이를 한 다음, AND로 진짜 필터링 조건을 쓰는 것도 하나의 응용 방법이다.

  4. 주석을 쓰자
    코드를 쓴 의도를 짧게 적어 두면 좋다. 특히 서브쿼리가 많아지고 코드가 길어질수록 단락별로 조건이 왜 필요한지, 어떻게 동작하는지 내용을 적어두면 코드를 나중에 볼 때도 이해하기 수월하다.

  5. Alias를 잘 쓰자
    변수명을 지을 때 대충 지으면 나중에 무엇을 뜻하는지 일일이 찾아보아야 한다. 변수명 짓기 팁을 참고하자.

가장 중요한 것은 구성원들과 합의된 규칙이다. 나의 코드를 모두가 볼 수 있다고 생각하고 작성, 정리하는 것이 중요하다.

[인사이트]

WHERE 절이 시작하자마자 1=1이라는 아무 의미 없는 조건을 넣어주고 행갈이를 한 다음, AND로 진짜 필터링 조건을 쓰는 것이 ‘SQL을 진짜 잘 하는 사람’의 응용법이라고 아티클에 나와 있었다. 이유가 뭘까? ⇒ WHERE 1=1항상 참인 조건.

진짜 원하는 조건을 AND로 연결하면, 각 조건들을 독립적으로 추가하거나 삭제하기가 쉽다고 한다.

파이썬을 할 때는 들여쓰기 내어쓰기가 중요했기에, SQL은 그렇지 않다는 점이 의외였다. 서브쿼리를 작성하면서는 ‘너무 읽기 복잡하다, 내가 써놓고도 무슨 코드인지 잘 모르겠다’는 생각을 종종 했다.

그 문제를 해결할 수 있는 좋은 습관들을 알게 되었다. 특히 나는 예약어를 대문자로 쓰지 않고(프로그램 내부에서 하이라이트 표시를 해 주기 때문에) 여러 칼럼을 선택할 때 행갈이를 하지 않았는데 지금부터 습관을 바로잡아야겠다고 생각했다.

profile
기록용

0개의 댓글