콘텐츠로 이동

Python Basics II: 텍스트 기반 프로그래밍

코스 개요

이 코스는 텍스트 기반 Python 프로그래밍의 핵심 개념을 배웁니다. 거북이 그래픽 없이 순수하게 데이터를 다루고, 사용자와 상호작용하며, 논리적인 프로그램을 작성합니다. 이 단계에서 배우는 개념들은 모든 프로그래밍 분야의 기초가 됩니다.

예상 소요 시간: 36~64시간

소요 시간은 학생의 학년, 사전 경험, 학습 속도에 따라 크게 달라집니다. 또한 기본 개념만 익히고 넘어가는 경우와 추가 실습 문제나 창의적 프로젝트를 더 진행하는 경우에 따라서도 차이가 납니다. 위 시간은 평균적인 범위이며, 자녀의 페이스에 맞추어 유연하게 진행하시기 바랍니다.

어떤 능력을 키우게 되나요?

데이터의 종류(숫자, 텍스트, 참/거짓)를 구분하고 데이터에 기반하여 판단을 내리는 "데이터 기반 의사결정(Data-Driven Decision Making)" 능력을 훈련합니다. 현대 사회에서 의료 진단, 금융 분석, 비즈니스 전략 등 모든 분야가 데이터에 기반한 판단으로 움직입니다. 이 코스에서 그 사고방식의 기초를 배웁니다.

어떤 원리를 배우나요?

  • (데이터 타입) 숫자, 문자열, 불리언 등 데이터의 종류를 구분하는 것은 데이터 처리의 첫걸음입니다. 엑셀에서 숫자와 텍스트를 다르게 다루듯, 컴퓨터도 데이터 타입에 따라 처리 방식이 달라집니다.
  • (조건 기반 판단) "점수가 90점 이상이면 A학점" 같은 데이터 기반 규칙을 코드로 표현합니다. 이것이 AI가 판단을 내리는 기본 원리이며, 모든 자동화 시스템의 핵심입니다.
AI 시대 사고력: 컴퓨팅 (문제해결) | 데이터 기반 | 확률적 사고력

컴퓨팅 사고력 (Computational Thinking)

스킬 설명 활동 예시
⚖️ 논리적 비교 두 값의 관계를 판단하기 score >= 60 → 합격 여부 판별
🔀 조건 분기 경우의 수에 따라 다른 처리 if-elif-else로 학점 A/B/C/D/F 분류
🛡️ 예외 처리 오류 상황 예측 및 대비 try-except로 잘못된 입력 처리
↔️ 타입 변환 데이터 형식 간 변환 int("123") → 문자를 숫자로

수학적 연결고리

수학 개념 프로그래밍 적용 학습 효과
부등식 x > 5 and x < 10 범위 표현, 부등식의 해
나머지 연산 n % 2 == 0 → 짝수 판별 배수, 약수, 주기 개념
논리 연산 and, or, not 명제 논리, 집합의 교집합/합집합
거듭제곱 2 ** 10 → 1024 지수 법칙, 기하급수적 증가

논리적 사고 훈련

논리 구조 설명 실생활 예시
AND (그리고) 모든 조건이 참이어야 참 "숙제를 했고 AND 청소도 했으면 용돈"
OR (또는) 하나라도 참이면 참 "비가 오거나 OR 눈이 오면 집에 있기"
NOT (부정) 참↔거짓 반전 "NOT 늦으면 → 지각 아님"

디버깅 사고 과정

flowchart LR
    A[오류 발생] --> B[오류 메시지 읽기]
    B --> C[원인 추측]
    C --> D[가설 테스트]
    D --> E[수정]
    E --> F[검증]
    F -.->|다시 오류| C
💻 코드 예시 & 시각화

예시 1: 자료형의 차이

# 숫자 vs 문자열
num = 5
text = "5"

print(num + 10)     # 15 (숫자 덧셈)
print(text + "10")  # "510" (문자열 연결)
print(int(text) + 10)  # 15 (형변환 후 덧셈)

자료형 비교:

┌────────────┬────────────┬────────────┐
│   타입     │    예시    │   연산 결과 │
├────────────┼────────────┼────────────┤
│ int (정수) │    5       │  5 + 10 = 15│
│ str (문자열)│   "5"     │ "5"+"10"="510"│
│ float(실수)│   5.0      │ 5.0+10 = 15.0│
│ bool(참거짓)│  True     │ True+1 = 2  │
└────────────┴────────────┴────────────┘


예시 2: 조건문 - 학점 계산기

score = int(input("점수를 입력하세요: "))

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"당신의 학점은 {grade}입니다.")

플로우차트:

flowchart TD
    A[점수 입력] --> B{score ≥ 90?}
    B -->|예| C[A 학점]
    B -->|아니오| D{score ≥ 80?}
    D -->|예| E[B 학점]
    D -->|아니오| F{score ≥ 70?}
    F -->|예| G[C 학점]
    F -->|아니오| H{score ≥ 60?}
    H -->|예| I[D 학점]
    H -->|아니오| J[F 학점]


예시 3: 논리 연산자

age = 15
has_id = True

# AND: 둘 다 참이어야 참
if age >= 18 and has_id:
    print("입장 가능")
else:
    print("입장 불가")

# OR: 하나만 참이어도 참
is_weekend = True
is_holiday = False

if is_weekend or is_holiday:
    print("쉬는 날!")

논리 연산 진리표:

┌─────┬─────┬─────────┬────────┐
│  A  │  B  │ A and B │ A or B │
├─────┼─────┼─────────┼────────┤
│  T  │  T  │    T    │   T    │
│  T  │  F  │    F    │   T    │
│  F  │  T  │    F    │   T    │
│  F  │  F  │    F    │   F    │
└─────┴─────┴─────────┴────────┘


예시 4: while 반복문 - 숫자 맞추기 게임

import random

answer = random.randint(1, 100)
guess = 0
tries = 0

while guess != answer:
    guess = int(input("숫자를 맞춰보세요 (1-100): "))
    tries += 1

    if guess < answer:
        print("더 큽니다! ⬆️")
    elif guess > answer:
        print("더 작습니다! ⬇️")

print(f"정답! {tries}번 만에 맞추셨습니다! 🎉")

플로우차트:

flowchart TD
    A[정답 생성<br/>1~100 랜덤] --> B[숫자 입력]
    B --> C{정답?}
    C -->|예| D[🎉 성공!]
    C -->|아니오| E{guess < answer?}
    E -->|예| F[더 큽니다 ⬆️]
    E -->|아니오| G[더 작습니다 ⬇️]
    F --> B
    G --> B


예시 5: 예외 처리 - 안전한 입력

while True:
    try:
        age = int(input("나이를 입력하세요: "))
        break  # 성공하면 반복 종료
    except ValueError:
        print("❌ 숫자를 입력해주세요!")

print(f"입력된 나이: {age}")

실행 예시:

나이를 입력하세요: abc
❌ 숫자를 입력해주세요!
나이를 입력하세요: 열다섯
❌ 숫자를 입력해주세요!
나이를 입력하세요: 15
입력된 나이: 15


1. 출력 마스터하기 (print)

항목 내용
무엇을 배우나요? 화면에 텍스트를 출력하는 방법
핵심 개념 입출력, 함수 호출, 문자열

print() 함수는 컴퓨터와 대화하는 첫 번째 방법입니다. 학생들은 코드가 실행되면서 무슨 일이 일어나는지 확인할 수 있습니다. 이것은 디버깅(오류 찾기)의 가장 기본적인 도구로, 전문 프로그래머도 매일 사용합니다. 컴퓨터에게 정확한 형식으로 명령을 내려야 한다는 것을 배우며, 이는 문법의 중요성을 이해하는 시작입니다.


2. 값과 자료형 (int, float, str, bool)

항목 내용
무엇을 배우나요? 숫자, 문자열, 불리언 등 데이터의 종류
핵심 개념 데이터 표현, 타입 시스템

컴퓨터는 모든 정보를 0과 1로 저장하지만, 프로그래밍 언어는 이를 사람이 이해하기 쉬운 형태로 제공합니다. 숫자(정수, 소수), 문자열(텍스트), 불리언(참/거짓)은 가장 기본적인 데이터 유형입니다. 학생들은 "5"와 5가 다르다는 것을 배웁니다 - 하나는 문자이고 하나는 숫자입니다. 데이터 타입을 이해하면 컴퓨터가 정보를 어떻게 처리하는지 근본적으로 이해하게 됩니다.


3. 계산 엔진: 산술 연산자

항목 내용
무엇을 배우나요? 덧셈, 뺄셈, 곱셈, 나눗셈 및 특수 연산
핵심 개념 계산, 표현식, 연산 우선순위

프로그래밍에서 연산자는 데이터를 조작하는 도구입니다. 기본 수학 연산(+, -, , /)뿐 아니라 나머지 연산(%)과 거듭제곱(*) 같은 특수 연산도 배웁니다. 나머지 연산은 짝수/홀수 판별, 시간 계산 등 실용적인 문제 해결에 자주 사용됩니다. 연산 우선순위를 이해하면 복잡한 계산식을 정확하게 작성할 수 있습니다.


4. 판단 기준: 비교 연산자

항목 내용
무엇을 배우나요? 값을 비교하여 참/거짓 판단하기
핵심 개념 논리적 판단, 불리언 결과

비교 연산자(==, !=, <, >, <=, >=)는 두 값을 비교하여 참(True) 또는 거짓(False)을 반환합니다. 이것은 컴퓨터가 "결정"을 내리는 기초가 됩니다. "점수가 60점 이상인가?", "나이가 18세 미만인가?" 같은 질문을 코드로 표현할 수 있습니다. 학생들은 조건을 명확하게 정의하는 능력을 기릅니다.


5. 조건의 논리: and / or / not

항목 내용
무엇을 배우나요? and, or, not으로 조건 결합하기
핵심 개념 복합 조건, 불리언 대수

논리 연산자는 여러 조건을 결합하여 더 복잡한 판단을 가능하게 합니다. and는 "그리고"(둘 다 참이어야 참), or는 "또는"(하나만 참이어도 참), not은 "아니다"를 의미합니다. "점수가 60 이상이고 출석이 80% 이상인 학생"처럼 현실 세계의 복잡한 규칙을 코드로 표현할 수 있습니다. 이 개념은 수학의 집합론, 논리학과 연결됩니다.


6. 반복의 리듬: while 루프

항목 내용
무엇을 배우나요? 조건이 참인 동안 반복 실행하기
핵심 개념 반복, 루프, 조건 기반 반복

while문은 "~하는 동안 계속하라"는 명령입니다. 조건이 참인 동안 코드 블록을 반복 실행합니다. 예를 들어, "사용자가 '종료'를 입력할 때까지 계속 질문하라"와 같은 상황에 적합합니다. 학생들은 반복 조건을 잘못 설정하면 무한 루프에 빠질 수 있다는 것을 배우며, 조건 설계의 중요성을 깨닫습니다.


7. 흐름 제어: break & continue

항목 내용
무엇을 배우나요? 반복문을 중간에 탈출하기
핵심 개념 루프 제어, 예외 상황 처리

break는 반복문을 강제로 종료시키고, continue현재 반복을 건너뛰고 다음으로 넘어갑니다. 예를 들어, 목록에서 원하는 항목을 찾으면 나머지를 검색할 필요가 없습니다. 이것은 효율적인 프로그래밍의 시작으로, 불필요한 작업을 줄이는 방법을 배웁니다.


8. 텍스트 다루기: 문자열

항목 내용
무엇을 배우나요? 텍스트 데이터 다루기
핵심 개념 문자열 조작, 인덱싱, 슬라이싱

문자열은 텍스트 데이터를 표현하는 방법입니다. 학생들은 문자열을 합치고, 자르고, 특정 문자를 찾는 방법을 배웁니다. 인덱싱(글자 위치로 접근)과 슬라이싱(부분 추출)은 데이터를 세밀하게 다루는 기술입니다. 이 개념은 사용자 이름 처리, 메시지 분석 등 실제 프로그램에서 매우 자주 사용됩니다.


9. 입력으로 대화하기: input()

항목 내용
무엇을 배우나요? 사용자로부터 데이터 받기
핵심 개념 사용자 상호작용, 데이터 타입 변환

input() 함수는 프로그램을 대화형으로 만듭니다. 사용자가 키보드로 입력한 데이터를 프로그램이 받아 처리할 수 있습니다. 중요한 점은 input()이 항상 문자열을 반환한다는 것으로, 숫자로 사용하려면 타입 변환이 필요합니다. 이 개념을 통해 퀴즈 게임, 계산기 등 상호작용적인 프로그램을 만들 수 있습니다.


10. 안전장치와 복구: 예외 처리 (try-except)

항목 내용
무엇을 배우나요? 오류가 발생해도 프로그램이 멈추지 않게 하기
핵심 개념 예외 처리, 안정성, 방어적 프로그래밍

프로그램은 예상치 못한 상황(사용자가 숫자 대신 문자를 입력, 파일이 없음 등)에서 오류를 발생시킬 수 있습니다. try-except 구문을 사용하면 오류가 발생해도 프로그램이 우아하게 처리하고 계속 실행될 수 있습니다. 학생들은 "무엇이 잘못될 수 있는가?"를 미리 생각하는 방어적 사고 방식을 기릅니다.


이 코스를 마치면...

학습 성과

학생들은 다음 능력을 갖추게 됩니다:

  • 다양한 데이터 타입을 이해하고 변환할 수 있음
  • 사용자 입력을 받아 처리하는 대화형 프로그램 작성
  • while 루프흐름 제어로 복잡한 반복 로직 구현
  • 예외 처리로 안정적인 프로그램 작성
  • 텍스트 기반 알고리즘 문제 해결 능력
  • 데이터 처리, 게임 개발 등 다양한 분야로 확장할 탄탄한 기초