카테고리 없음

2025.11.11 TIL (본캠프, 17일차)

D:Connect 2025. 11. 11. 21:12

오늘도 SQL 코드카타로 하루를 시작했다. 어제의 경험을 바탕으로 좀 더 효율적으로 문제를 풀 수 있었다. 그리고 파이썬 데이터 시각화를 학습했다.

 

어제 Level 1에서 10문제를 풀었다면, 오늘은 Level 2에 도전했다.

 

Level 1보다는 조금더 어렵지만, 아직까진 풀지 못한 문제는 없었다. 지금까지 배운 SQL 기초가 얼마나 탄탄한지를 보여주는 증거이지 않을까 싶다.

문제의 난이도는 올라갔지만, 문제를 푸는 접근 방식은 비슷하다. WHERE 절의 조건이 복잡해지거나, GROUP BY와 집계함수의 결합이 필요해지거나, 또는 간단한 JOIN이 포함되는 정도다.

 

한 가지 흥미로운 생각이 들었다. "Level 9는 얼마나 어려울까?"

지금 Level 2를 풀면서 이미 생각이 드는 것을 보면, 레벨이 올라갈수록 상당히 난해할 것 같다. Window Function을 활용해야 하거나, 복잡한 서브쿼리가 필요하거나, 여러 개의 테이블을 JOIN해야 하는 문제들이 나올 것 같다.

하지만 지금은 그런 고민보다, 현재의 Level 2를 완벽히 하는 것이 먼저다. 한 단계 한 단계 올라가면서 실력을 쌓아나가는 것이 최선의 방법이라고 생각한다.

 

오늘의 또 다른 중요한 학습은 데이터 시각화다. 데이터 분석의 마지막 단계인 시각화를 배우면서, Python을 이용한 데이터 분석의 전체 과정이 점점 이해가되어 가고 있다.

 

 

1. Line Plot (선 그래프)

시간 흐름에 따른 변화를 보는 데 효과적이다. 주가 변동, 온도 변화, 매출 추이 같은 시계열 데이터에 주로 사용된다.

import matplotlib.pyplot as plt
import seaborn as sns

# 간단한 선 그래프
data = [10, 15, 13, 20, 25]
plt.plot(data)
plt.title("Line Plot Example")
plt.show()

 

2. Bar Plot (막대 그래프)

범주별 데이터를 비교할 때 사용한다. 각 범주의 크기를 한눈에 비교할 수 있어 가장 일반적인 시각화 방법 중 하나다.

# 카테고리별 비교
categories = ['A', 'B', 'C', 'D']
values = [10, 24, 36, 18]
plt.bar(categories, values)
plt.title("Bar Plot Example")
plt.show()

 

3. Histogram (히스토그램)

연속형 데이터의 분포를 나타낸다. 데이터가 어떻게 분포하고 있는지, 중심이 어디에 있는지 파악하는 데 유용하다.

# 데이터 분포
data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5]
plt.hist(data, bins=5)
plt.title("Histogram Example")
plt.show()

 

4. Pie Chart (원형 차트)

전체에서 각 부분이 차지하는 비율을 나타낼 때 사용한다. 구성비를 한눈에 파악할 수 있다.

# 구성비 표현
sizes = [30, 25, 20, 25]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels=labels)
plt.title("Pie Chart Example")
plt.show()

 

5. Box Plot (상자 그림)

데이터의 분포를 요약해서 보여준다. 중앙값, 사분위수, 이상치 등을 한눈에 확인할 수 있어 통계 분석에서 자주 사용된다.

# 데이터 분포 요약
data = [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6, 7]]
plt.boxplot(data)
plt.title("Box Plot Example")
plt.show()

 

6. Scatter Plot (산점도)

두 변수 간의 관계를 나타낸다. 상관관계가 있는지, 어떤 패턴이 있는지 시각적으로 파악할 수 있다.

# 두 변수 간의 관계
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.scatter(x, y)
plt.title("Scatter Plot Example")
plt.show()

 

 

강의의 코드를 따라하면서 각 시각화를 만들었을 때는 어렵지 않았다. 튜터가 이미 코드를 작성해놨고, 나는 그것을 실행하고 결과를 보는 과정이었기 때문이다.

 

하지만 막상 새로운 데이터셋으로 혼자 시각화를 만들려고 하니 어렵다. 어떤 시각화 방법이 적합한지 판단해야 하고, 코드를 직접 작성해야 하고, 데이터에 맞게 조정해야 한다.

 

이것이 바로 학습의 현실이다. 이론을 배우고 따라하는 것과 직접 적용하는 것은 완전히 다르다. 따라서 복습이 필수적이다.

지금은 매번 강의를 다시 보면서 코드를 반복해서 작성해야 한다. 이 과정을 반복하다 보면, 언제가는 "어떤 시각화가 어떤 상황에 적합한가"를 자동으로 판단할 수 있게 될 것이다.

 

"익숙해질 때까지 복습이 답이다."

이 문장이 오늘 가장 와닿는 말이다. SQL 문제풀이를 할 때도 처음에는 어렵고 시간이 걸렸지만, 매일 반복하니 이제는 처음보다 훨씬 자연스럽게 풀린다. 파이썬 시각화도 같은 방식으로 접근해야 할 것 같다.

 

17일차를 마무리하며....

오늘의 학습 목표

  • SQL 코드카타: Level 2, 10문제
  • 복습: 지난 내용 정리
  • Python 데이터 전처리: 데이터 시각화 6가지 기법

느낀 점

이제는 데이터 분석의 전체 프로세스가 보인다.

데이터 분석 프로세스:

  1. 데이터 수집 (SQL로 데이터 추출)
  2. 데이터 전처리 (Python의 Pandas로 정제)
  3. 탐색적 분석 (EDA)
  4. 시각화 (Matplotlib, Seaborn)
  5. 인사이트 도출

SQL, Python, 시각화가 모두 이 프로세스의 일부임을 이제 실감한다.

 

4주차의 두 번째 날을 마무리하면서 느끼는 것은 "반복이 정말로 강하다"는 것이다.

SQL 코드카타를 매일하면서 기초가 자동으로 체득되고 있고, 파이썬 시각화도 반복을 통해 언제가는 익숙해 질 것이다.

내일도 같은 마음으로 코드카타를 진행하고, 파이썬 라이브 세션 및 데이터 전처리를 복습해야 겠다. .

한 단계 한 단계, 매일 조금씩 나아가자.