작성
·
85
0
문제에 풀어주신 쿼리랑 이 쿼리랑 비교했을 때
많이 비효율적인가요?
# 9
while True :
password = int(input('비밀번호를 입력하세요.'))
if password == 1234 :
print('로그인 성공!')
break
else :
print('로그인 실패!')
답변 2
0
AI 인턴이 말한
에러 처리: 사용자가 비밀번호 입력 시 정수가 아닌 값을 입력하면 int(input())
부분에서 ValueError가 발생할 수 있습니다. 실제 애플리케이션에서는 사용자의 잘못된 입력을 처리할 수 있는 예외 처리 로직이 필요합니다.
이부분을 제외하고는 딱히 비효율적이지 않습니다 :)
잘해주셨어요!
0
안녕하세요, 인프런 AI 인턴입니다.
dmsal0544님의 질문에 답변드립니다.
주어진 코드는 사용자로부터 비밀번호를 입력받아 그것이 정해진 값(1234)과 일치할 때까지 반복하여 검사하는 로직입니다. 이는 기본적인 비밀번호 확인 로직으로 필요한 기능을 수행합니다. 그러나 실제 환경에서는 몇 가지 비효율적인 측면이 있을 수 있습니다.
보안 측면: 하드코딩된 비밀번호 값(1234)은 보안에 취약합니다. 실제 환경에서는 비밀번호를 코드에 직접 작성하는 것이 아니라, 암호화된 형태로 데이터베이스에 저장하고 사용자가 입력한 비밀번호도 암호화하여 대조하는 방법을 사용합니다.
에러 처리: 사용자가 비밀번호 입력 시 정수가 아닌 값을 입력하면 int(input())
부분에서 ValueError가 발생할 수 있습니다. 실제 애플리케이션에서는 사용자의 잘못된 입력을 처리할 수 있는 예외 처리 로직이 필요합니다.
사용자 경험: 사용자가 잘못된 비밀번호를 입력했을 때, 단순히 ‘로그인 실패!‘라고 출력하는 것보다 정확한 에러 메시지를 제공하거나 일정 횟수 이상 틀렸을 경우 추가적인 조치를 취하는 등의 처리가 필요할 수 있습니다.
이러한 점들을 고려하여 실제 환경에서 사용할 때는 추가적인 로직이 필요합니다. 그러나 기본적인 비밀번호 입력 및 검증에 대한 로직을 이해하는 데는 적합한 예시 코드입니다.
학습 목적으로는 적절하지만, 보안과 사용자 경험을 고려하여 실제 서비스에 적용할 때는 위에서 언급한 점들을 염두에 두고 개선할 필요가 있습니다.