[내일배움캠프 데이터분석 사전캠프]+SQL,Python

유기홍·2025년 4월 29일
post-thumbnail

📆 TIL: 2025.04.29 (화)

파이썬 기초 + SQL 실습


🐍 파이썬 학습 요약

1. 리스트와 딕셔너리 중첩 구조 접근

people = [ 
    {'name': 'bob', 'age': 20, 'score': {'math': 90, 'science': 70}},
    {'name': 'carry', 'age': 38, 'score': {'math': 40, 'science': 72}},
    {'name': 'smith', 'age': 28, 'score': {'math': 80, 'science': 90}},
    {'name': 'john', 'age': 34, 'score': {'math': 75, 'science': 100}}
]
print(people[2]['score']['science'])  # 90

2. 반복문 for, 조건문 if, enumerate, break

짝수 출력, 짝수 개수 세기, 총합 구하기, 최대값 찾기 등 반복 패턴 학습

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

짝수 개수 세기
count = 0
for num in num_list:
    if num % 2 == 0:
        count += 1
print(count)

3. 함수 정의와 문자열 처리

주민번호를 입력받아 성별 판별

def check_gender(pin):
    num = pin.split('-')[1][0]
    if int(num) % 2 == 0:
        print('여성')
    else:
        print('남성')

check_gender('150101-1012345')

🧠 SQL 학습 요약

피드백 관련 쿼리 실습

✔️ 사용자별 마지막 피드백 날짜

SELECT user_name, MAX(feedback_date)
FROM lol_feedbacks
GROUP BY user_name;

✔️ 피드백을 가장 많이 남긴 Top 3

SELECT user_name, COUNT(*) AS feedback_count
FROM lol_feedbacks
GROUP BY user_name
ORDER BY feedback_count DESC
LIMIT 3;

✔️ 만족도 평균이 가장 높은 날짜

SELECT AVG(satisfaction_score) AS avg_score, feedback_date
FROM lol_feedbacks
GROUP BY feedback_date
ORDER BY avg_score DESC
LIMIT 1;

✔️ 만족도는 높지만, 피드백 수는 적은 날짜 찾기

SELECT feedback_date, AVG(satisfaction_score) AS avg_score, COUNT(*) AS feedback_count
FROM lol_feedbacks
GROUP BY feedback_date
HAVING avg_score >= 4.0
ORDER BY feedback_count ASC, avg_score DESC
LIMIT 3;

💬 느낀 점

  • 파이썬에서 리스트 안의 딕셔너리 접근법과 for문 반복 패턴을 연습하면서, 실제 데이터 구조를 다루는 감각을 익혀갔다.

  • SQL에서는 날짜 함수와 집계함수를 조합해 실질적인 "Top 분석", "최근 활동", "조건 필터링"을 구현해보면서 실무 감각이 생김.

  • 단순히 쿼리만 쓰는 게 아니라, "무엇을 분석하는지","어떤 데이터를 뽑아야 하는지"를 먼저 알 필요가 있음.

  • 파이썬은 차갑다....


🎯 내일의 목표

  • 파이썬 리스트/딕셔너리 더 많은 패턴 연습

  • 강의 복습하며 활용법 숙지

  • SQL에서 JOIN, GROUP BY + HAVING 응용 복습

0개의 댓글