Today I Learned

[내일배움캠프 QA/QC 트랙 6기 본캠프] TIL #009 — 함수

JiJi0406 2026. 5. 21. 20:20

001

오늘의 키워드: 함수 어려워

 앞으로 코딩하며 주구장창 마주하게 될 함수에 대해 배웠다. 5년 전인가... 대학교 교양 과목으로 파이썬을 잠깐 배웠던 적이 있는데, 오래돼서 가물가물하지만 함수 배울 때 좀 힘들어했던 것 같다. 그리고 오랜만에 배운 함수는 여전히 어려웠다.....

 


 

002

오늘 배운 내용

 

[라이브 세션] 손보미 튜터님  Python 기초 3회차

↓ 새기자...

이것저것 찍먹 =시간 버리기

선택과 집중. 가고 싶은 길을 딱 정해서 그것만 파자.

 

코드 안 떠오른다고 화면만 몇십 분씩 째려보지 말자

노션이나 블로그 뒤져보고, 정 안 되면 AI 도움 받으면서 일단 작성하자.

그리고 나중에 그 코드를 혼자 구현할 수 있으면 잘 하고 있는 것 👍

 

 

1. while 복습 — for vs while 비교

  for while
언제 쓰나 반복 횟수 정해져 있을 때 사용 종료 조건 충족할 때까지 (몇 번 반복되는지 모를 때)
종료 조건 순회 대상이 끝나면 조건이 False가 되면

while은 조건이 True인 동안에는 계~속 돌기 때문에 외부에서 변수로 limit(pass / continue / break)을 걸어줘야 한다.

안 그러면 영원히 돌아가고 컴도 터진다.

 

 

tip. 반복문 흐름이 헷갈리면 Python Tutor 에서 시각화해보기 : https://pythontutor.com/

 

 

2. 함수

세션 들으면서 필기한 내용 (함수 자세한 개념은 아래 작성)

  • 함수 = 자판기. 입력 넣으면 output 나오는 것
  • 프로젝트 마무리할 때, 어디에 공유할 때, 포트폴리오 최종본 만들 때 함수화하면 좋음
  • return vs print : return은 함수를 즉시 종료하면서 값을 반환하는 것. print는 그냥 화면에 출력만 할 뿐 값을 넘기지 x
  • 매개변수 없는 함수도 있음 (→ def 함수이름())
  • 함수의 반환값이 여러개면 반환값 결과형은 튜플
  • return값 여러개면 첫번째만 실행
  • map() : iterable의 각 요소에 함수를 적용해서 결과를 반환하는 내장 함수.
  • 람다 함수 : 이름 없는 익명 함수. 간결하고 메모리 절약이 장점이라고는 하는데,,., 심화내용은 튜터님께서도 어려우면 굳이 지금 안 봐도 된다고 하셨으니 일단 패스~...... 기본만 해도 벅차다

 

[VOD 강의] 데이터 분석 파이썬 종합반 4주차 수강 완료

1. 함수?

 내가 내린 정의 : 

입력값을 받아 정해진 연산을 처리한 뒤,  결과물을 뱉어내는 코드 보따리

 

< 왜 쓰는지? >

  • 재사용 용이 : 같은 코드를 반복해서 쓰지 않아도 됨
  • 유지보수 쉬움 : 수정할 때 함수 하나만 고치면 끝
  • 가독성 좋음 : 코드가 무슨 일을 하는지 이름만 봐도 파악 가능
def 함수이름(매개변수1, 매개변수2):
    # 처리할 작업
    return 결과값

결과 = 함수이름(인수1, 인수2)  # 함수 호출

 

 

▼ 함수 실제 코드 예시

# 검사 수치 리스트의 평균 계산 함수
def calculate_mean(values):
    total = sum(values)
    mean = total / len(values)
    return mean

wbc_data = [7200, 8100, 6500, 9000, 7800]
print("평균 WBC:", calculate_mean(wbc_data))

 

 

2. 변수의 활동 범위 (전역변수 vs 지역변수)

  어디서 씀? 특징
전역변수 (Global) 프로그램 전체 어디서든 호출 가능 함수 내부에서 수정하려면 global 선언 필요
지역변수 (Local) 함수 내부(def 블록 안)에서만 존재 함수 실행이 끝나면 메모리에서 없어짐

 

 

3. 매개변수 VS 인수(Argument)

  • 매개변수: 함수 정의할 때 만드는 괄호 안의 변수
  • 인수(Argument): 함수 호출할 때 실제로 꽂아주는 값
def inspect(item, value):   # item, value가 매개변수
    print(f"{item}: {value}")

inspect("WBC", 8500)        # "WBC", 8500이 인수​

 

 

4. 인수 종류 정리

  • 위치 인수 : 순서대로 매핑. 순서 틀리면 바로 잘못된 결과 나옴. 
  • 키워드 인수 : 매개변수 이름을 명시해서 전달. 순서 상관없음.
  • 기본값 : 인수 안 넘기면 기본값으로 처리. 선택적 입력이 필요할 때 유용.
  • 가변 인수 : *args는 개수가 불특정한 위치 인수, **kwargs는 개수가 불특정한 키워드 인수.
# 키워드 인수 + 기본값
def report(item, value, unit="개/μL"):
    print(f"{item}: {value} {unit}")

report(item="WBC", value=8500)           # 기본값 사용
report(item="HGB", value=13.5, unit="g/dL")  # 기본값 덮어쓰기
 
# 가변 인수 — 여러 수치 한 번에 합산
def sum_counts(*args):
    total = 0
    for n in args:
        total += n
    return total

print("총 이상 건수:", sum_counts(3, 7, 2, 5))  # 출력: 17


# **kwargs — 검사 정보 자유롭게 출력
def print_patient_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_patient_info(name="김철수", age=42, diagnosis="정상")
 
 

5. 데이터 분석 실무 활용성

실무로 넘어가면 이 함수들을 가지고

1) 결측치나 이상치를 정제하는 전처리 함수
2) 매번 그리기 귀찮은 시각화 차트 자동 생성 함수
3) 반복적인 통계 지표 계산 함수

 

등을 직접 커스텀해서 파이프라인을 구축할 때 쓴다.

 

[아티클 스터디]

주제 :  양질의 데이터를 판별하는 5가지 방법 ① 데이터 양은 충분한가?

 

~ 읽으면서 메모장에 정리한 내용 ~

 

1. 양질의 데이터란 무엇인가? 

 1) 데이터의 품질

 ⓐ 다양한 데이터 보유 ≠ 데이터로 이익 취하기

  - 데이터의 다양성은 분석 소스 확보 측면에서 장점은 o, but 효율성 떨어질 수도 있음

 ⓑ 모든 데이터가 고품질의 데이터는 x

 ⓒ 저품질 데이터라고 모두 활용되지 않는 것도 x

→  고품질의 데이터일수록 실제로 활용될 확률 ↑

 

 2) 양질의 데이터 판단하는 방법

 < 양질의 데이터 특징 >

 - 데이터 수 多

 - 데이터 자체의 오류 少

 - 관계형데이터베이스 형식을 잘 지킴

 - 수치형 데이터 형식 多

 - 활용 목적에 적합

 

2. 데이터가 충분히 많은가?

 1) 데이터 양을 중요하게 고려해야 하는 경우

 - 표본이 모집단을 대표하지 못할 때

: 데이터 수 자체가 너무 적으면 표본의 대표성 의심

 - AI 알고리즘을 적용해야 하는 이유

: 데이터 양↑→ 정확도↑

 

 2) 어느 정도가 충분한 양일까?

 : 절대적인 기준은 없으나, 데이터 분석의 목적과 방법에 따라 정도가 달라짐

 ⓐ 통계적 분석: 최소 500개 이상의 데이터 필요

  - 통계적 유의미성: 분석 결과를 통계적으로 신뢰할 수 있는가에 대한 지표

: 보통 300~500개 이상이 될 때부터 수치 안정

 ⓑ 머신러닝 분야

  - 기본 전제: 데이터는 다다익선, 최소한의 수준은 어느정도 존재

  - 일반적으로 데이터가 변수의 수에 100 곱한 것보다 많다면 ok

 

3. 결론

 - 데이터의 양은 분석 결과의 신뢰도와 직결

 - 딥러닝 분야: 적은 데이터의 부정확한 AI 


003

오늘의 시행착오


 

코드가 점점 복잡해진다~~🤯

세션 끝나고 문제 풀었는데, 어찌저찌 풀고나니까 힌트에 min()내장함수 쓰라는 내용을 뒤늦게 봄... min 넣어서 다시 만들어보려니까 머리가 하얘진다 (내일 세션 듣기 전에 다시 풀어보겠음)

 


 

004

내일 학습할 것

  • 라이브 세션 4회차 듣기
  • 함수 복습 & 문제 더 풀기
  • 내일 과제 나가는데, 가능하면 그냥 내일 다 끝내버리기

 

 


내일만 보내면 주말이 온다~