통합 요약노트

Ch.2 Python 첫걸음 — 데이터를 다루다

변수, 조건문, 반복문, 파일 처리 — AI 학습 데이터를 직접 만들어봅니다.

이 챕터의 내용

1

변수란? — 이름표 붙은 상자

변수 = 이름표가 붙은 상자 — 상자에 데이터를 넣고 이름으로 꺼냅니다.

ChatGPT가 여러분과 대화하는 동안, 여러분의 메시지를 어딘가에 저장해야 합니다. 그 '어딘가'가 바로 변수입니다. AI의 모든 데이터 처리는 변수에 값을 넣는 것에서 시작합니다.

변수는 데이터를 담는 이름표가 붙은 상자입니다

= 기호는 '같다'가 아니라 '넣는다'입니다

  • 변수 = 이름표 붙은 데이터 상자
  • = 는 '같다'가 아니라 '넣는다'
상세 노트 보기arrow_forward
2

타입 — int, str, float, bool

str, int, float, bool — Python의 4가지 기본 타입을 배워봅시다.

LLM은 텍스트를 숫자로 바꿔서 처리합니다. "hello"는 문자열이고, 이걸 토큰 ID [15339]로 변환하면 정수입니다. 같은 데이터라도 타입이 다르면 처리 방식이 완전히 달라집니다. 타입을 구별하는 것이 프로그래밍의 첫 번째 규칙입니다.

Python에는 4가지 기본 데이터 타입이 있습니다

type() 함수로 데이터의 타입을 확인합니다

  • str, int, float, bool — 4가지 기본 타입
  • type()으로 타입 확인
  • "42"(str) ≠ 42(int)
상세 노트 보기arrow_forward
3

f-string과 print — 결과를 보여주다

f-string — 변수를 문자열 안에 깔끔하게 넣는 최신 방법입니다.

LLM에게 보내는 모든 프롬프트는 결국 문자열입니다. "너는 도움이 되는 AI야"라는 시스템 프롬프트도, 사용자의 질문도 전부 텍스트죠. 문자열을 자유자재로 조합하는 것이 AI 개발의 첫걸음입니다.

f-string은 변수를 문자열 안에 넣는 가장 쉬운 방법입니다

아래 코드를 실행하고 결과를 확인해보세요

  • print()로 화면에 출력
  • f"...{변수}..." — 변수를 문자열에 삽입
  • {변수:,} — 숫자 포맷팅
상세 노트 보기arrow_forward
4

조건문 — if, elif, else

if/elif/else — 여러 조건을 순서대로 검사합니다.

AI가 "판단한다"는 것은 결국 if-else입니다. '이 토큰 다음에 뭐가 올 확률이 높은가?' — 이것도 조건 분기의 연속이죠. 수십억 개의 학습 데이터에서 품질이 낮은 텍스트를 걸러내는 것도 조건문의 역할입니다.

조건에 따라 다른 코드를 실행합니다

조건문으로 AI 챗봇의 감정 판별기를 만들어봅시다

  • if — 조건이 참이면 실행
  • elif — 이전 조건이 거짓이고, 이 조건이 참이면
  • else — 모든 조건이 거짓이면
상세 노트 보기arrow_forward
5

for 반복문 — 데이터를 하나씩 처리하다

for 루프 — 리스트의 요소를 하나씩 꺼내서 처리합니다.

GPT-4의 학습 데이터는 약 13조 개의 토큰입니다. 이 토큰들을 하나씩 처리하려면 반복문이 필수죠. AI 학습(training)도 본질적으로 for loop의 반복 — 데이터를 넣고, 예측하고, 오차를 줄이는 과정을 수만 번 반복합니다.

for 루프가 리스트를 순회하는 과정을 따라가봅시다

for 루프로 데이터를 하나씩 처리해봅시다

  • for 루프 — 리스트 요소를 하나씩 처리
  • if + for — 조건에 맞는 데이터만 필터링
상세 노트 보기arrow_forward
6

딕셔너리와 JSON — AI 학습 데이터 형식

JSON — 프로그래밍 세계의 만국 공통어입니다.

ChatGPT에게 메시지를 보내면, 내부적으로 JSON 형태로 전달됩니다. `{"role": "user", "content": "안녕"}` — 이것이 AI API의 기본 언어죠. AI 학습 데이터도, API 요청/응답도 전부 JSON입니다. 딕셔너리를 아는 것이 곧 AI 데이터를 아는 것입니다.

JSON은 데이터를 표현하는 만국 공통어입니다

json.loads()로 JSON 문자열을 Python 딕셔너리로 변환합니다

  • JSON = 키:값 쌍으로 구성된 데이터 포맷
  • JSONL = 한 줄에 하나의 JSON
  • json.loads()로 파싱
상세 노트 보기arrow_forward
7

함수 — 코드를 재사용하다

함수 — 코드를 재사용하는 핵심 도구입니다.

같은 텍스트 전처리를 1,000번 반복할 때마다 코드를 복사할 순 없습니다. 함수로 묶으면 한 줄이면 됩니다. 실제로 AI 파이프라인의 모든 단계 — 토큰화, 정규화, 임베딩 — 는 각각 함수로 구현됩니다.

함수는 코드를 재사용하는 이름표가 붙은 상자입니다

매개변수에 기본값을 주면 호출이 유연해집니다

  • def + return → 코드 재사용의 기본
  • 매개변수 기본값 → 유연한 함수 호출
  • return 없으면 None 반환
상세 노트 보기arrow_forward
8

에러 처리 — try/except로 튼튼하게

try/except — 프로그램의 비상구를 만듭니다.

AI 학습 데이터 수백만 줄을 처리하다가 딱 한 줄에서 깨진 JSON이 나오면? 에러 처리 없이는 전체가 멈춥니다. 실제 AI 파이프라인에서 `try/except`는 생명줄입니다. 나쁜 데이터 하나 때문에 전체 학습이 중단되지 않도록 막아줍니다.

try/except로 프로그램의 비상구를 만듭니다

Python에서 자주 만나는 에러 타입들

  • try/except → 에러에 강한 프로그램
  • ValueError, KeyError, IndexError, TypeError
상세 노트 보기arrow_forward
9

클래스 — 데이터와 함수를 묶다

클래스 — 데이터와 함수를 하나의 '설계도'로 묶습니다.

PyTorch의 모든 AI 모델은 클래스로 만들어집니다. `class MyModel(nn.Module):` — 이 한 줄이 AI 모델의 시작이죠. 변수와 함수가 수십 개로 늘어나면, 관련된 것끼리 묶어야 합니다. 그 묶음의 설계도가 클래스입니다.

클래스는 데이터와 함수를 묶는 설계도입니다

설계도로 실제 객체를 만들어봅시다

  • 클래스 = 데이터 + 함수를 묶는 설계도
  • self = 현재 객체 자신
  • 딕셔너리 키는 중복 불가
상세 노트 보기arrow_forward
10

종합 실습 — 미니 데이터 파이프라인

따라치기 실습 — 완성된 코드를 보고 자기 것으로 만드는 시간입니다.

변수 → 타입 → 문자열 → 조건문 → 반복문 → JSON → 함수 → 에러 처리 → 클래스. 이 조각들을 모으면 데이터 전처리기가 됩니다. 실제 AI 학습의 첫 단계인 데이터 파이프라인을 직접 만들어봅시다. 이것이 ChatGPT의 학습 데이터가 거치는 과정과 본질적으로 같습니다.

4단계로 데이터를 처리합니다

4단계를 하나의 클래스로 통합해봅시다

  • 변수·타입·f-string → 데이터 기초
  • if/for + 함수 + 에러처리 → 데이터 필터링
  • 클래스 → 코드 조직화
상세 노트 보기arrow_forward

key

핵심 용어 모음

ValueError

값 변환 실패 (int('hello'))

🔑

KeyError

딕셔너리 키 없음

📏

IndexError

리스트 범위 초과

🏷️

TypeError

잘못된 타입 연산

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 코스 시작하기