Python 기초 — 의사를 위한 첫 번째 코딩 수업

…

한줄 요약

Python은 의료 AI 생태계의 공용어다 — 설치부터 혈당 분류 코드까지 30분이면 시작할 수 있다.


왜 Python인가

TensorFlow, PyTorch, scikit-learn, LangChain — 의료 AI에 쓰이는 거의 모든 라이브러리가 Python으로 작성되어 있다. 논문 코드를 재현하거나, AI API를 호출하거나, 임상 데이터를 분석할 때 Python이 사실상 표준이다.

R은 통계에 강하고, Java는 병원 EMR 시스템에 많이 쓰이지만, 처음 배우기 쉽고 AI 도구와 연동이 가장 편한 언어는 Python이다.


설치

  1. python.org → 최신 버전 다운로드 및 설치 (Windows: “Add to PATH” 체크)
  2. code.visualstudio.com → VS Code 설치
  3. VS Code에서 Python 확장(Extension) 설치

터미널에서 확인:

python --version
# Python 3.12.x

변수 — 환자 정보를 저장하는 공간

변수는 환자 차트의 한 칸이라고 생각하면 된다.

# 환자 기본 정보
patient_name = "김철수"
age = 45
height = 172.5      # cm
weight = 78.0       # kg
is_diabetic = True  # 당뇨 여부

print(patient_name, ":", age, "세")
# 출력: 김철수 : 45 세

리스트 — 환자 목록

# 외래 대기 환자 목록
waiting_patients = ["김철수", "이영희", "박민준", "최수진"]

print(waiting_patients[0])   # 김철수 (첫 번째)
print(len(waiting_patients)) # 4 (총 인원)

waiting_patients.append("정다은")  # 추가
print(waiting_patients)

딕셔너리 — 환자 차트

키-값 쌍으로 구성된 딕셔너리는 환자 차트와 구조가 같다.

patient_chart = {
    "name": "김철수",
    "age": 45,
    "chief_complaint": "우하복부 통증",
    "bp": "130/85",
    "hba1c": 7.2
}

print(patient_chart["chief_complaint"])  # 우하복부 통증
patient_chart["diagnosis"] = "급성 충수염 의증"  # 새 항목 추가

함수 — 의료 프로토콜

같은 처치를 반복하지 않듯, 반복되는 코드는 함수로 만든다.

def calculate_bmi(weight_kg, height_cm):
    """BMI 계산 함수"""
    height_m = height_cm / 100
    bmi = weight_kg / (height_m ** 2)
    return round(bmi, 1)

bmi = calculate_bmi(78, 172)
print("BMI:", bmi)  # BMI: 26.4

조건문 — 임상 의사결정

def classify_blood_glucose(glucose_mg_dl):
    """공복혈당 분류 (ADA 기준)"""
    if glucose_mg_dl < 100:
        return "정상"
    elif glucose_mg_dl < 126:
        return "공복혈당장애 (전당뇨)"
    else:
        return "당뇨병 의심 — 추가 검사 필요"

# 실제 사용
glucose = 118
result = classify_blood_glucose(glucose)
print(f"공복혈당 {glucose} mg/dL → {result}")
# 출력: 공복혈당 118 mg/dL → 공복혈당장애 (전당뇨)

실습: BMI + 혈당 동시 평가

def patient_metabolic_summary(name, weight, height, fasting_glucose):
    bmi = calculate_bmi(weight, height)
    glucose_status = classify_blood_glucose(fasting_glucose)

    print(f"=== {name} 대사 요약 ===")
    print(f"BMI: {bmi} → {'비만' if bmi >= 25 else '정상 범위'}")
    print(f"혈당: {fasting_glucose} mg/dL → {glucose_status}")

patient_metabolic_summary("김철수", 78, 172, 118)

이 코드를 VS Code에서 실행하면 즉시 결과를 확인할 수 있다.


핵심 정리

  • Python은 의료 AI 생태계의 표준 언어 — 먼저 배울 이유가 충분하다
  • 변수/리스트/딕셔너리는 환자 정보, 환자 목록, 환자 차트에 각각 대응한다
  • 함수는 반복되는 의료 프로토콜을 코드로 표현한 것이다
  • 조건문(if/elif/else)은 임상 의사결정 흐름과 동일한 구조다
  • print()로 언제든 중간 결과를 확인하는 습관을 들여라

관련 글