더 안전한 코드 만들기
Chapter 3-3: 더 안전한 코드 만들기
🎯 이번 시간에 배울 것
- 코드에 안전장치 추가하기
- 사용자가 잘못 입력해도 프로그램이 꺼지지 않게 하기
🌟 지난 시간 돌아보기
Chapter 3-2에서 코드에 설명을 추가하는 방법을 배웠죠!
하지만 아직도 이런 문제가 있어요:
- "사용자가 숫자 대신 문자를 입력하면 프로그램이 꺼져요"
- "0으로 나누면 에러가 나요"
바로 이럴 때 필요한 것이 안전장치입니다! ✨
🚨 왜 안전장치가 필요할까요?
안전장치가 없는 코드
print("나누기 계산기")
a = int(input("첫 번째 숫자: "))
b = int(input("두 번째 숫자: "))
result = a / b
print("결과:", result)
print("나누기 계산기")
a = int(input("첫 번째 숫자: "))
b = int(input("두 번째 숫자: "))
result = a / b
print("결과:", result)
어떤 문제들이 생길까요? 🤔
- 사용자가 "안녕" 입력 → 프로그램 꺼짐
- 두 번째 숫자로 0 입력 → 프로그램 꺼짐
안전장치가 있는 코드
print("안전한 나누기 계산기")
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
# 숫자인지 확인하기
if first_input.isdigit():
a = int(first_input)
# 두 번째 숫자 입력받기
second_input = input("두 번째 숫자: ")
if second_input.isdigit():
b = int(second_input)
# 0으로 나누기 방지
if b == 0:
print("0으로 나눌 수 없어요!")
else:
# 계산하기
result = a / b
print("결과:", result)
else:
print("두 번째 입력이 숫자가 아니에요!")
else:
print("첫 번째 입력이 숫자가 아니에요!")
print("안전한 나누기 계산기")
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
# 숫자인지 확인하기
if first_input.isdigit():
a = int(first_input)
# 두 번째 숫자 입력받기
second_input = input("두 번째 숫자: ")
if second_input.isdigit():
b = int(second_input)
# 0으로 나누기 방지
if b == 0:
print("0으로 나눌 수 없어요!")
else:
# 계산하기
result = a / b
print("결과:", result)
else:
print("두 번째 입력이 숫자가 아니에요!")
else:
print("첫 번째 입력이 숫자가 아니에요!")
이제 어떤 입력을 해도 프로그램이 안전해요! 😊
🚀 실습 1: 나이 입력 프로그램 안전하게 만들기
원래 코드
print("나이 확인 프로그램")
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
print("나이 확인 프로그램")
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
Edit로 안전장치 추가하기
1. 코드 전체 선택하고 Ctrl+K 2. 요청: "이 코드에 안전장치를 추가해주세요"
개선된 결과
print("안전한 나이 확인 프로그램")
# 나이 입력받기
age_input = input("나이를 입력하세요: ")
# 숫자인지 확인하기
if age_input.isdigit():
age = int(age_input)
# 음수는 isdigit()에서 이미 걸러짐
# 너무 큰 숫자 확인
if age > 150:
print("올바른 나이를 입력해주세요!")
else:
# 성인 여부 판단
if age >= 18:
print(f"{age}세는 성인입니다.")
else:
print(f"{age}세는 미성년자입니다.")
else:
print("숫자로만 입력해주세요!")
print("안전한 나이 확인 프로그램")
# 나이 입력받기
age_input = input("나이를 입력하세요: ")
# 숫자인지 확인하기
if age_input.isdigit():
age = int(age_input)
# 음수는 isdigit()에서 이미 걸러짐
# 너무 큰 숫자 확인
if age > 150:
print("올바른 나이를 입력해주세요!")
else:
# 성인 여부 판단
if age >= 18:
print(f"{age}세는 성인입니다.")
else:
print(f"{age}세는 미성년자입니다.")
else:
print("숫자로만 입력해주세요!")
🎉 놀라운 변화!
Before: 잘못 입력하면 프로그램 꺼짐 After: 어떤 입력을 해도 안전함
🎮 실습 2: 간단한 계산기 안전하게 만들기
원래 코드
print("간단한 계산기")
num1 = int(input("첫 번째 숫자: "))
num2 = int(input("두 번째 숫자: "))
print("더하기:", num1 + num2)
print("나누기:", num1 / num2)
print("간단한 계산기")
num1 = int(input("첫 번째 숫자: "))
num2 = int(input("두 번째 숫자: "))
print("더하기:", num1 + num2)
print("나누기:", num1 / num2)
Edit으로 안전장치 추가
코드 전체 선택 → Ctrl+K → "이 계산기에 안전장치를 추가해주세요"
개선된 결과
print("안전한 계산기")
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
# 첫 번째 숫자가 숫자인지 확인
if first_input.isdigit():
num1 = int(first_input)
# 두 번째 숫자 입력받기
second_input = input("두 번째 숫자: ")
# 두 번째 숫자가 숫자인지 확인
if second_input.isdigit():
num2 = int(second_input)
# 더하기는 항상 안전함
print("더하기:", num1 + num2)
# 나누기는 0으로 나누기 확인 필요
if num2 == 0:
print("나누기: 0으로 나눌 수 없어요!")
else:
print("나누기:", num1 / num2)
else:
print("두 번째 입력이 숫자가 아니에요!")
else:
print("첫 번째 입력이 숫자가 아니에요!")
print("안전한 계산기")
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
# 첫 번째 숫자가 숫자인지 확인
if first_input.isdigit():
num1 = int(first_input)
# 두 번째 숫자 입력받기
second_input = input("두 번째 숫자: ")
# 두 번째 숫자가 숫자인지 확인
if second_input.isdigit():
num2 = int(second_input)
# 더하기는 항상 안전함
print("더하기:", num1 + num2)
# 나누기는 0으로 나누기 확인 필요
if num2 == 0:
print("나누기: 0으로 나눌 수 없어요!")
else:
print("나누기:", num1 / num2)
else:
print("두 번째 입력이 숫자가 아니에요!")
else:
print("첫 번째 입력이 숫자가 아니에요!")
🔧 안전장치 만드는 방법
기본 패턴
# 사용자 입력받기
user_input = input("숫자 입력: ")
# 안전하게 확인하기
if user_input.isdigit():
# 숫자라면 계속 진행
number = int(user_input)
print("입력한 숫자:", number)
else:
# 숫자가 아니라면 에러 메시지
print("숫자만 입력해주세요!")
# 사용자 입력받기
user_input = input("숫자 입력: ")
# 안전하게 확인하기
if user_input.isdigit():
# 숫자라면 계속 진행
number = int(user_input)
print("입력한 숫자:", number)
else:
# 숫자가 아니라면 에러 메시지
print("숫자만 입력해주세요!")
자주 사용하는 안전장치들
# 1. 숫자 입력 안전하게 받기
user_input = input("숫자 입력: ")
if user_input.isdigit():
number = int(user_input)
print("입력한 숫자:", number)
else:
print("숫자만 입력해주세요!")
# 2. 0으로 나누기 방지
if b != 0:
result = a / b
print("결과:", result)
else:
print("0으로 나눌 수 없어요!")
# 3. 범위 확인
if 1 <= number <= 100:
print("올바른 범위입니다!")
else:
print("1부터 100 사이의 숫자를 입력해주세요!")
# 1. 숫자 입력 안전하게 받기
user_input = input("숫자 입력: ")
if user_input.isdigit():
number = int(user_input)
print("입력한 숫자:", number)
else:
print("숫자만 입력해주세요!")
# 2. 0으로 나누기 방지
if b != 0:
result = a / b
print("결과:", result)
else:
print("0으로 나눌 수 없어요!")
# 3. 범위 확인
if 1 <= number <= 100:
print("올바른 범위입니다!")
else:
print("1부터 100 사이의 숫자를 입력해주세요!")
🎯 실습 3: 나만의 프로그램 안전하게 만들기
미션: 점수 입력 프로그램
시작 코드:
print("등급 확인 프로그램")
score = int(input("점수 입력: "))
if score >= 90:
print("A등급")
elif score >= 80:
print("B등급")
elif score >= 70:
print("C등급")
else:
print("F등급")
print("등급 확인 프로그램")
score = int(input("점수 입력: "))
if score >= 90:
print("A등급")
elif score >= 80:
print("B등급")
elif score >= 70:
print("C등급")
else:
print("F등급")
개선 미션
1. 코드 전체 선택하고 Ctrl+K 2. 요청: "이 점수 프로그램에 안전장치를 추가해주세요"
다음과 같이 개선될 거예요:
print("안전한 등급 확인 프로그램")
# 점수 입력받기
score_input = input("점수를 입력하세요 (0-100): ")
# 숫자인지 확인하기
if score_input.isdigit():
score = int(score_input)
# 점수 범위 확인
if score < 0 or score > 100:
print("0부터 100 사이의 점수를 입력해주세요!")
else:
# 등급 계산
if score >= 90:
print(f"{score}점은 A등급입니다!")
elif score >= 80:
print(f"{score}점은 B등급입니다!")
elif score >= 70:
print(f"{score}점은 C등급입니다!")
else:
print(f"{score}점은 F등급입니다!")
else:
print("숫자로만 입력해주세요!")
print("안전한 등급 확인 프로그램")
# 점수 입력받기
score_input = input("점수를 입력하세요 (0-100): ")
# 숫자인지 확인하기
if score_input.isdigit():
score = int(score_input)
# 점수 범위 확인
if score < 0 or score > 100:
print("0부터 100 사이의 점수를 입력해주세요!")
else:
# 등급 계산
if score >= 90:
print(f"{score}점은 A등급입니다!")
elif score >= 80:
print(f"{score}점은 B등급입니다!")
elif score >= 70:
print(f"{score}점은 C등급입니다!")
else:
print(f"{score}점은 F등급입니다!")
else:
print("숫자로만 입력해주세요!")
🌟 학습 성과 체크
오늘 배운 내용
✅ .isdigit()로 숫자 입력 확인하기
✅ 0으로 나누기 방지하기
✅ 입력 범위 확인하기
✅ 사용자 친화적 에러 메시지 만들기
✅ .isdigit()로 숫자 입력 확인하기
✅ 0으로 나누기 방지하기
✅ 입력 범위 확인하기
✅ 사용자 친화적 에러 메시지 만들기
🎉 마무리
축하합니다! 이제 여러분은 안전한 코드를 만들 수 있습니다! ✨
🔥 오늘의 성취
- 입력 검증 방법 습득
- 안전장치 추가하는 방법 습득
- 사용자 친화적 에러 메시지 작성법 습득
💡 다음 시간 예고
다음 Chapter 3-4에서는 **"종합 실습 - 완전한 프로그램 만들기"**를 배워보겠습니다!
🎯 오늘의 과제
직접 Edit 기능을 사용해서 여러분의 프로그램에 안전장치를 추가해보세요!
여러분의 코드는 이제 안전하고 믿을 수 있습니다! 🚀