내일배움캠프

[사전캠프] 데이터기반 QA/QC 부트캠프 7일차

min0jun 2026. 5. 6. 17:55

1. 오늘 학습 목표

- 파이썬 발 담구기

 

2. 오늘 학습 한 내용

Python

  • 숫자형
a = 7
b = 2

a+b   # 9 
a-b   # 5
a*b   # 14
a/b   # 3.5

a+3*b         # 13 (여러 연산을 한 줄에 할 경우 사칙연산의 순서대로!)
(a+3)*b       # 20 (소괄호를 이용해서 먼저 계산할 부분을 표시해줄 수 있어요!)
a//b  # 3 (몫)
a%b   # 1 (나머지)
a**b  # 49 (거듭제곱)
  • Bool 자료형
4 > 2      # True  크다
5 < 1      # False 작다
6 >= 5     # True  크거나 같다
4 <= 4     # True  작거나 같다
3 == 5     # False 같다
4 != 7     # True  같지 않다

 

  • 문자열
first_name = "Harry"
last_name = "Potter"

first_name + last_name  # HarryPotter
first_name + " " + last_name  # Harry Potter

a = "3"
b = "5"
a + b    # 35
len으로 문자열 길이 구하기
print(len("abcde"))           # 5 
print(len("Hello, Sparta!"))  # 14
print(len("안녕하세요."))      # 6
  • 인덱싱
f="abcdefghijklmnopqrstuvwxyz"
f[1]   # b 파이썬은 숫자를 0부터 셉니다
  • 슬라이싱
f[4:15]  # efghijklmno           f[4]부터 f[15] 전까지, 총 15-4=11개!

f[8:]    # ijklmnopqrstuvwxyz    f[8]부터 끝까지, 앞의 8개 빼고!
f[:7]    # abcdefg               시작부터 f[7] 전까지, 앞의 7개!

f[:]     # abcdefghijklmnopqrstuvwxyz  처음부터 끝까지
  • 스플릿
myemail = 'abc@sparta.co'

domain = myemail.split('@')[1].split('.')[0]
print(domain)

 

Tip. 모든 코딩은 기억할 필요없이 필요한게 있을때마다 찾아보면 된다. 부담 NO!

 

 

3. 오늘의 과제 

  • 배터리 셀 품질 모니터링 분석

Q1. 전체 셀 중 불량 셀의 비율을 계산하시오.

SELECT 
    ROUND(
        -- 불량 셀 수 / 전체 셀 수 * 100 → 소수점 2자리까지 반올림
        100.0 * COUNT(CASE 
            -- 불량 조건: 전압 < 3.0V 또는 > 4.3V
            -- 또는 온도 < 10°C 또는 > 50°C
            -- 또는 내부저항 > 200mΩ
            WHEN voltage < 3.0 OR voltage > 4.3 
              OR temperature < 10 OR temperature > 50 
              OR internal_resistance > 200 
            THEN 1 
        END) / COUNT(*),  -- 전체 셀 개수로 나눔
    2) AS defect_rate_percent  -- 불량률 (%) 출력, 소수점 2자리 반올림
FROM battery_cell_tests;

 

Q2. 품질 항목별 불량 건수를 구하시오.

SELECT
    -- 전압이 기준을 벗어난 경우: < 3.0V 또는 > 4.3V
    SUM(CASE 
        WHEN voltage < 3.0 OR voltage > 4.3 THEN 1 
        ELSE 0 
    END) AS voltage_defects,

    -- 온도가 기준을 벗어난 경우: < 10°C 또는 > 50°C
    SUM(CASE 
        WHEN temperature < 10 OR temperature > 50 THEN 1 
        ELSE 0 
    END) AS temperature_defects,

    -- 내부저항이 기준을 벗어난 경우: > 200 mΩ
    SUM(CASE 
        WHEN internal_resistance > 200 THEN 1 
        ELSE 0 
    END) AS ir_defects

FROM battery_cell_tests;

 

Q3. 로트별 불량률을 구하시오.

SELECT
    lot_no,  -- 생산 로트 번호

    -- 불량률(%) 계산: (불량 셀 수 / 전체 셀 수) * 100 → 소수점 둘째 자리까지 반올림
    ROUND(
        100.0 * SUM(CASE 
            -- 불량 조건: 전압, 온도, 내부저항 중 하나라도 기준을 벗어난 경우
            WHEN voltage < 3.0 OR voltage > 4.3 
              OR temperature < 10 OR temperature > 50 
              OR internal_resistance > 200 
            THEN 1 ELSE 0 
        END) / COUNT(*),  -- 로트 내 전체 셀 수
    2) AS defect_rate_percent  -- 불량률(%) 컬럼명

FROM battery_cell_tests
GROUP BY lot_no  -- 로트 번호별로 그룹화
ORDER BY defect_rate_percent DESC  -- 불량률이 높은 순으로 정렬
LIMIT 3;  -- 상위 3개 로트만 출력

 

Q4. 3개 항목 모두 기준 초과한 셀 수를 구하시오.

SELECT 
    COUNT(*) AS full_defect_cells  -- 전압, 온도, 내부저항 모두 불량인 셀의 개수
FROM battery_cell_tests
WHERE 
    -- 전압이 기준을 벗어난 경우: < 3.0V 또는 > 4.3V
    (voltage < 3.0 OR voltage > 4.3)

    AND 
    -- 온도가 기준을 벗어난 경우: < 10°C 또는 > 50°C
    (temperature < 10 OR temperature > 50)

    AND 
    -- 내부저항이 기준을 벗어난 경우: > 200 mΩ
    internal_resistance > 200;

 

  • 파이썬 알아보기
  • Python이 가독성이 높고 문법이 쉽다는 사례
    -Python은 영어 문장처럼 읽히는 문법을 사용함. 예를 들어 조건문도 if, else처럼 직관적으로 작성하고,
     중괄호 대신 들여쓰기로 코드 구조를 구분해서 처음 보는 사람도 흐름을 이해하기 쉽다.

  • 가독성이 좋은 언어의 이점
    -코드를 빠르게 이해하고 수정할 수 있어 협업과 유지보수가 쉬워짐. 또한 오류를 찾기 쉽고,
      비전공자도 비교적 빠르게 학습할 수 있음.

  • 데이터 분석가가 Python을 알아야 하는 이유
    -Python은 데이터 수집, 정리, 분석, 시각화, 머신러닝까지 한 번에 처리할 수 있는 언어입니다.
     그래서 데이터 분석 업무에서 매우 실용적으로 사용됨.

  • 데이터 분석가가 Python을 이용했을 때 이점
    -Pandas, NumPy, Matplotlib 같은 다양한 라이브러리를 활용해 반복 작업을 자동화하고
     대량의 데이터를 효율적으로 분석할 수 있음.

 

 

나의 간단 소감

- 파이썬... SQL과 비슷한듯 하면서도 다른..