오늘은 정보량이 굉장히 많은 하루였다. SQL의 핵심 개념들을 여러 개 배웠고, A/B 테스트라는 새로운 영역도 마주했다. 머리가 복잡해지는 느낌이 들지만, 그만큼 배우고 있다는 증거다.
오늘 아침 세션은 세 가지 큰 주제를 다뤘다.
1. SQL 집계함수 (Aggregate Functions)
집계함수란 여러 행의 데이터를 받아 하나의 값으로 반환하는 함수들이다. COUNT, MAX, MIN, SUM, AVG가 대표적이다. 각각 개수, 최댓값, 최솟값, 합계, 평균을 구한다. 이 함수들을 어떻게 활용하는지가 데이터 분석의 기초가 된다.
2. SQL 그룹화: GROUP BY와 HAVING
GROUP BY절은 앞에서 배운 집계함수에 "그룹(기준)"이 더해진 개념이다. 예를 들어 모든 판매액의 합을 구하는 것이 아니라, 지역별로 나눠서 각 지역의 판매액 합계를 구하는 것처럼이다.
중요한 것은 작동 순서다. 튜터가 오늘도 강조한 내용인데, 작동 순서를 이해하는 것이 SQL을 제대로 사용하는 핵심이라고 했다.
SQL 작동 순서: FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY
여기서 가장 헷갈리는 부분이 HAVING과 WHERE의 차이다.
HAVING ≠ WHERE
이 둘은 둘 다 필터링 기능을 하지만, 동작하는 시점이 다르다.
WHERE절은 GROUP BY 전 원본 데이터를 기준으로 필터링한다. 즉, 그룹을 만들기 전에 데이터를 먼저 걸러낸다.
반면 HAVING절은 GROUP BY 후 결과값을 기준으로 필터링한다. 즉, 그룹이 만들어진 후에 그룹 결과를 걸러낸다.
같은 필터링이지만 시점이 다르면 결과가 완전히 달라질 수 있다는 뜻이다. 이 차이를 명확히 이해해야 한다.
3. SQL: SUB QUERY 구문 (가장 중요)
이번 세션의 하이라이트였다. SUB QUERY는 데이터 분석에서 정말 중요한 개념이다.
빅데이터를 다루다 보면 많은 컬럼이 들어있는 데이터셋을 보게 된다. 이런 데이터에 여러 연산(사칙연산, 집계, 윈도우 함수, 포맷팅)을 할 때, SUB QUERY는 이런 과정들을 순차적이고 구조적으로 기록하는 역할을 한다. 즉, 복잡한 작업을 단계별로 나눠서 할 수 있도록 도와준다는 뜻이다.
SUB QUERY의 실행순서는 명확하다. 서브쿼리(안쪽) 실행 → 메인쿼리(바깥쪽) 실행. 가장 안쪽부터 바깥쪽으로 차례대로 실행되면서 최종 결과값을 반환한다.
SUB QUERY의 종류는 세 가지다.
- 중첩(일반) 서브쿼리
- 스칼라 서브쿼리
- 인라인 뷰(가장 많이 사용)
각 종류의 특성과 사용 시점을 정확히 알아야 한다.
세션이 끝난 후 5문제 숙제가 나왔다. 1~5번까지 전부 풀었지만, 5번 문제에서 DISTINCT를 쓰지 않아서 틀렸다. 문제를 읽을 때 더 꼼꼼히 읽어야겠다는 생각이 들었다. 결과가 맞는 것만큼이나 문제 요구사항을 정확히 파악하는 것도 중요하다.
오늘은 화요일이라 팀 활동으로 아티클을 읽고 의견을 나누었다. 오늘의 주제는 "A/B 테스트 제대로 이해하기"였다.
두 개의 시리즈 글이었다.
- A/B 테스트 제대로 이해하기 : ① 테스트를 설계할 때 우리의 질문은?
- A/B 테스트 제대로 이해하기 : ② A/B 테스트를 위한 기초 통계 이해하기
내가 읽고 느낀 요약과 핵심 내용은 다음과 같다.
- 요약 : A/B 테스트는 단순히 두 방안 중 어느 것이 더 나은지 비교하는 것이 아니라, 제한된 표본 데이터로 전체 고객층에 대해 신뢰할 수 있는 결론을 도출하는 통계적 프로세스이다. 그리고 테스트를 위해서는 기초 통계 개념(모집단/표준, 신뢰도, P-value 등)을 이해하고 적용해야한다.
- 주요 포인트 :
- A/B 테스트에 대한 질문
- 표면: A와 B 중 뭐가 더 나을까?
- 실제: 이 결과가 정말 효과가 있을까? 우연은 아닐까? 앞으로의 모든 고객에게도 통할까?
- 세 가지 질문
- 효과 크기
- 공정성
- 신뢰성
- 통계의 핵심 개념
- 모집단과 표본: 우리는 전체를 알 수 없고 일부만 관찰 가능
- 신뢰 수준: 95%는 100번 중 95번은 맞지만 5번은 틀릴 수 있음
- P-value: 결과가 우연일 확률, 5% 이하면 유의미한 결과
- 통계는 필수다
- 매번 다른 고객들이 참여하므로 같은 조거느이 실험도 결과가 달라진다. 따라서 이 결과가 실험의 효과 때문인지 우연인지 수학적으로 증명해야 한다.
- A/B 테스트을 위한 확인 사항
- 충분한 표본 크기 확보
- P-value 확인
- 효과 크기가 실제로 의미 있는가?
- 두 그룹이 공정하게 비교되었는가?
- A/B 테스트에 대한 질문
오늘 하루의 목표 중 하나는 파이썬 공부였다. 하지만 SQL 숙제를 하느라 학습하지 못했다. 시간이 모자란 상황이다.
오늘이 가기 전에 조금이라도 파이썬을 공부해야겠다. SQL의 심화 내용도 많지만, 파이썬도 병행해야 하는 상황이다.
오늘 배운 내용들을 정리하면:
- 집계함수와 GROUP BY로 데이터를 구조화하는 방법
- HAVING과 WHERE의 명확한 구분
- SUB QUERY를 통한 구조적 데이터 처리
- A/B 테스트라는 새로운 통계 개념
머리가 복잡해지는 느낌이 들지만, 이것들이 모여 데이터 분석가의 역량이 되는 것이라고 생각한다. 내일도 이 페이스를 유지하면서 한 걸음씩 나아가야겠다.