GUI 애플리케이션을 개발하다 보면 사용자로부터 비밀번호를 입력받아야 하는 경우가 자주 발생합니다. 이때 비밀번호가 화면에 그대로 노출되면 보안상 위험하기 때문에, 일반적으로 입력된 문자를 별표(*) 형태로 마스킹하여 표시합니다.
파이썬의 Tkinter에서는 Entry(엔트리) 위젯의 show 옵션을 활용하면 손쉽게 비밀번호 입력 필드를 구현할 수 있습니다. 이 옵션에 특정 문자를 지정하면, 사용자가 어떤 글자를 입력하든 해당 문자로 대체되어 화면에 나타나기 때문에 입력 내용이 암호화된 형태로 보호됩니다.
비밀번호 입력 필드 구현 예제
다음 예제에서는 비밀번호를 입력받는 창과 함께, 클릭 시 창을 닫는 종료 버튼까지 포함된 간단한 애플리케이션을 만들어 보겠습니다.
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 프레임 인스턴스 생성
win = Tk()
# 창 크기 설정
win.geometry("600x250")
# 창을 닫는 함수 정의
def close_win():
win.destroy()
# 안내 라벨 생성
Label(win, text="비밀번호를 입력하세요", font=('Helvetica', 20)).pack(pady=20)
# 비밀번호 입력용 Entry 위젯 생성 (show="*"로 마스킹 처리)
password = Entry(win, show="*", width=20)
password.pack()
# 창을 닫는 버튼 생성
Button(win, text="종료", font=('Helvetica bold', 10), command=close_win).pack(pady=20)
win.mainloop()실행 결과
위 코드를 실행하면 비밀번호를 입력할 수 있는 입력 필드와 창을 닫는 버튼이 포함된 윈도우가 화면에 나타납니다.
입력 필드에 비밀번호를 타이핑해 보면, 실제 문자 대신 별표(*)만 표시되는 것을 확인할 수 있습니다. 이처럼 show="*" 옵션 하나만 추가하면 사용자의 민감한 정보를 화면으로부터 보호할 수 있습니다.
비밀번호 입력을 마친 후 [종료] 버튼을 클릭하면 close_win() 함수가 호출되어 창이 닫히며 프로그램이 종료됩니다.
핵심 포인트 정리
- show 옵션: Entry 위젯에
show="*"를 지정하면 입력값이 별표로 마스킹됩니다. - 마스킹 문자 변경 가능: 별표 대신 다른 문자(예:
show="#")를 사용할 수도 있습니다. - destroy() 메서드:
win.destroy()를 호출하면 현재 윈도우를 안전하게 종료할 수 있습니다.
이 방법은 로그인 화면, 회원가입 폼 등 인증 관련 GUI를 개발할 때 반드시 알아두어야 할 기본 기능이므로, 직접 코드를 실행하며 익혀보시기 바랍니다.