나는 Python으로 재미있는 함수형 ATM을 만들었다 (그리고 그것이 기대 이상으로 많은 것을 가르쳐 주었다 💳🐍)
Source: Dev.to

🏧 우리 파이썬 ATM이 할 수 있는 일
- ✅ PIN 인증
- ✅ 잔액 확인
- ✅ 현금 인출
- ✅ 입금
- ✅ 깔끔한 메뉴 기반 흐름
- ✅ 오류 처리 (음수 인출 방지)
전부 순수 파이썬이며 외부 라이브러리를 사용하지 않았습니다.
🎭 ATM을 문지기처럼 생각해 보세요
ATM은 당신이 누구인지 신경 쓰지 않습니다. 오직 규칙만 신경 씁니다:
- 올바른 PIN인가?
- 충분한 잔액이 있는가?
- 금액이 유효한가?
우리 파이썬 ATM도 같은 논리를 따릅니다.
🧠 1단계: 뇌 (계정 데이터)
account = {
"pin": "1234",
"balance": 5000
}
🔐 2단계: PIN 인증 (문지기)
def authenticate():
pin = input("Enter your PIN: ")
if pin == account["pin"]:
print("✅ Access Granted\n")
return True
else:
print("❌ Incorrect PIN")
return False
올바른 PIN이 없으면 파티에 입장할 수 없습니다.
💰 3단계: 잔액 확인
def check_balance():
print(f"💳 Your current balance is: Rs {account['balance']}")
💸 4단계: 돈 인출 (규칙 포함!)
def withdraw():
amount = int(input("Enter amount to withdraw: "))
if amount account["balance"]:
print("❌ Insufficient balance")
else:
account["balance"] -= amount
print(f"✅ Withdrawal successful! New balance: Rs {account['balance']}")
오버드래프트 금지. 드라마 없이.
💵 5단계: 돈 입금
def deposit():
amount = int(input("Enter amount to deposit: "))
if amount <= 0:
print("⚠️ Invalid amount")
else:
account["balance"] += amount
print(f"✅ Deposit successful! New balance: Rs {account['balance']}")
가장 좋은 기능—돈이 들어갑니다 😄
🧭 6단계: ATM 메뉴 (마법이 일어나는 곳)
def atm_menu():
while True:
print("\n🏧 ATM MENU")
print("1. Check Balance")
print("2. Withdraw Money")
print("3. Deposit Money")
print("4. Exit")
choice = input("Choose an option: ")
if choice == "1":
check_balance()
elif choice == "2":
withdraw()
elif choice == "3":
deposit()
elif choice == "4":
print("👋 Thank you for using the ATM")
break
else:
print("⚠️ Invalid choice")
루프가 사용자가 떠날 때까지 ATM을 살아 있게 합니다.
🚀 7단계: ATM 실행
if authenticate():
atm_menu()
그게 전부—마법이 아니라 논리로 만든 작동하는 ATM입니다.
🎯 이 작은 ATM이 가르쳐 주는 것
- 함수와 모듈화 설계
- 입력 검증
- 상태 관리
- 보안 기본
- 사용자 경험 로직
이것들은 은행 앱, 결제 시스템, 백엔드 서비스에서도 동일하게 적용되는 원칙입니다.
🧪 더 발전시키고 싶나요?
- 다중 사용자 지원
- PIN 재시도 제한
- 거래 내역 기록
- 파일 기반 저장소
- GUI 또는 웹 인터페이스
각 업그레이드는 실제 앱 개발에 한 걸음 더 다가가게 합니다.
🧠 마무리 생각
이런 작은 재미있는 프로젝트를 만드는 것은 “장난 코딩”이 아닙니다. 실제 개발자가 사고 방식을 배우는 방법이죠. ATM을 만들 수 있다면, 무엇이든 만들 수 있습니다.
행복한 코딩 🐍💻