LG U+ Why Not SW CAMP 7기 8주차 회고

gayoniee·2025년 7월 8일

회고

목록 보기
8/25

Liked

예전에 오라클로 SQL 짰던 기억이 하나둘씩 떠오르면서 감각이 되살아나는 느낌이라 되게 재밌었다.

LIKE, BETWEEN, DISTINCT, IN 같은 키워드들이 손에 익는 느낌이 있었고

내가 직접 조건을 걸고 데이터 필터링해보는 과정에서 그때도 자주 썼었지 싶은 익숙함이 돌아와서 공부가 좀 더 수월하게 느껴졌다.

그냥 문법만 배운 게 아니라 다양한 조건을 조합해서 내가 원하는 대상을 정확히 골라내는 훈련이 된 것 같아서 좋았다.

  • SELF JOIN, OUTER JOIN을 연습하면서 단순히 문법만 확인한 게 아니라 쿼리의 해석 구조와 출력 결과까지 논리적으로 따져본 점이 정말 좋았다.
  • 선배-후배 관계, 사원이 없는 부서, 부서가 없는 사원 문제를 풀면서 고민을 오래 해봤다.
  • UNION으로 FULL OUTER JOIN을 흉내내는 방식이 신선했다.

Learned

  • SHOW COLUMNS FROMDESCRIBE보다 조금 더 유연하고 뷰에도 적용할 수 있다는 걸 새롭게 알게 됐고
  • information_schema.tables를 조회하면 현재 데이터베이스에 어떤 테이블들이 있는지 확인할 수 있다는 것도 다시 익혔다.
  • LIKE '%45'는 문자열이 '45'로 끝나는 경우이고 LIKE '%45%'는 어디든 '45'가 포함된 경우라는 걸 예제로 직접 써보며 구분했다.
  • BETWEEN A AND B는 양쪽 경계값을 포함한다는 점을 실습하면서 다시 짚었고
  • DISTINCT 지역, 도시는 각각의 컬럼 기준이 아니라 두 컬럼이 함께 중복되지 않는 조합 기준이라는 점을 알았다.
  • IN 조건은 정확히 일치해야만 작동하고 조금이라도 다르면 잡히지 않는다는 걸 다시 확인하면서 텍스트 조건을 쓸 땐 LIKE가 더 유연하게 쓸 수 있다는 걸 정리했다.

전체적으로는 다시 쓰니까 기억이나고 쓰면서 더 확실해지는 그런 시간이었다.

  • LEFT JOINRIGHT JOINUNION으로 합치면 MySQL에서 FULL OUTER JOIN을 구현할 수 있다는 것을 확실하게 이해했다.
  • SELF JOIN은 꼭 관리자-사원 구조뿐 아니라 입사일 기준 비교 마일리지 비교 처럼 자기 자신과의 상대적 관계를 분석할 때 자주 쓰인다는 걸 배웠다.
  • GROUP BY는 집계 함수 없이 사용하면 의도와 다르게 그룹 단위로 묶여서 정보가 사라질 수 있다는 걸 여러 연습을 통해 확인할 수 있었다.
  • MAX(마일리지)를 서브쿼리 없이 SELF JOIN으로 구하는 방식은 기존에 잘 몰랐던 생각법이라 기억에 남는다….

Lacked

조건문을 다양하게 조합해서 실습해보는 중에

IN, BETWEEN, LIKE 등이 서로 어떤 상황에서 더 적절한지 정확하게 알고는 있지만

조건이 2~3개씩 들어가는 상황에서는 우선순위나 괄호 사용에 대한 확신이 조금 부족하다는 걸 느꼈다.

괄호 없이도 작동은 하지만 명확하게 표현하고 실수를 줄이기 위해선 항상 괄호로 묶는 습관이 중요하다는 걸 다시 느꼈다.

AND, OR이 같이 들어갈 때는 눈으로만 판단하지 말고 괄호로 구조를 분명하게 표현하는 게 안전하겠다는 생각이 들었다.

실습 중 DISTINCT 에서 지역 하나, 도시 하나씩만 보이게 한다는 말을 내가 쿼리로 표현했을 때 SQL은 그걸 (지역, 도시) 조합 하나씩으로 정확히 해석했다.

결과적으로 내가 의도한 대로 잘 작동했지만 이런 부분에서 내가 생각한 의미와 SQL이 해석하는 방식 사이의 살짝의 어긋남이 있을 수 있다는 걸 다시 느꼈다.

단순히 쿼리를 잘 쓰는 걸 넘어서 데이터를 SQL이 어떻게 읽고 판단하는지를 감각적으로 이해하는 게 더 중요하겠다는 생각이 들었다.

  • 처음에 UNION을 썼을 때 후배가 나오지 않아서 혼란이 있었는데, 그 원인이 SELECT 열 개수/순서/이름이 첫 SELECT 기준으로 고정된다는 SQL의 룰이라는 걸 뒤늦게 확인했다.
  • GROUP BY를 쓰면서도 왜 에러가 나는지 어떤 경우에 SELECT에 포함된 컬럼과 맞춰줘야 하는지를 아직 완전히 알지 못한 부분이 있다.
  • 어렵당….

Longed for

3년 전에 오라클로 쿼리를 짤 때도 자주 썼던 기억이 있지만 막상 지금 다시 하려니까 손이 바로 움직이지는 않는다는 게 느껴졌다.

그래서 더욱 배우면서 기억이 돌아오고 내가 생각보다 많이 알고 있었다는 걸 다시 확인하는 경험이 기대된다.

실습 예제들이 단순히 문법 연습에 그치지 않고 실제 데이터를 요약하거나 비교 분석하는 데까지 이어졌으면 좋겠다.

JOIN 이랑 서브쿼리는 다시 배웠는데.. 왜 SQL이 그때도 쉽지 않았는지 기억이 날 것 같다…ㅋㅋㅋ

UPDATE 제품 SET 단가 = 카테고리 평균처럼 그룹 단위 평균을 기준으로 전체 일괄 업데이트하는 것도 JOIN + 서브쿼리로 도전해보고 싶다.

→ 그때는 성능까지 비교하면서 해보면 더 좋을 것 같다.

0개의 댓글