
이 강의는 Tkinter GUI 강의 48강입니다
47강에서는
팝업 메뉴(Context Menu)를 만들어
마우스 우클릭 UX를 완성했습니다.
이번 강의에서는
프로그램이 사용자에게
메시지를 전달하는 가장 기본적인 방법,
messagebox를 다룹니다.
이번 강의의 목표는 분명합니다.
messagebox의 종류와 용도를 이해하고
언제 어떤 메시지를 써야 하는지 감각을 잡는 것입니다.
messagebox는 무엇인가
messagebox는
사용자에게
정보를 알리거나, 경고하거나, 확인을 요청하는
다이얼로그 창입니다.
대표적인 사용 상황은 다음과 같습니다.
- 작업 완료 알림
- 오류 발생 안내
- 정말 실행할 것인지 확인
messagebox import 방법
messagebox는
tkinter의 서브 모듈입니다.
from tkinter import messagebox
이 한 줄로
모든 메시지 다이얼로그를
사용할 수 있습니다.
가장 기본적인 정보 메시지
messagebox.showinfo("제목", "내용")
가장 많이 쓰이는
메시지 형태입니다.
showinfo 예제
import tkinter as tk
from tkinter import messagebox
window = tk.Tk()
window.geometry("300x200")
def show_message():
messagebox.showinfo("알림", "작업이 완료되었습니다.")
tk.Button(window, text="메시지 표시", command=show_message).pack(pady=40)
window.mainloop()
버튼을 누르면
정보 메시지가
표시됩니다.

경고 메시지 showwarning
messagebox.showwarning("경고", "이 작업은 되돌릴 수 없습니다.")
경고 메시지는
사용자의 주의를
환기할 때 사용합니다.

오류 메시지 showerror
messagebox.showerror("오류", "파일을 불러오지 못했습니다.")
오류 메시지는
문제가 발생했음을
명확히 전달할 때 사용합니다.

메시지 종류 정리
messagebox에서
자주 사용하는 메시지는 다음과 같습니다.
- showinfo → 정보 전달
- showwarning → 주의 환기
- showerror → 오류 알림
이 세 가지만으로도
대부분의 상황을
커버할 수 있습니다.
messagebox는 흐름을 멈춘다
중요한 특징 하나입니다.
messagebox는
모달(modal) 다이얼로그입니다.
즉,
메시지를 닫기 전까지
다른 UI를
조작할 수 없습니다.
이 점을
의도적으로 사용해야 합니다.
언제 messagebox를 쓰면 안 될까
다음과 같은 상황에서는
messagebox 사용을
자제하는 것이 좋습니다.
- 자주 반복되는 알림
- 실시간 상태 표시
- 작은 정보 변화
이 경우에는
Label이나 Statusbar가
더 적합합니다.
messagebox 사용 위치 기준
실무 기준으로
다음 위치에 messagebox를 씁니다.
- 작업 완료 시
- 오류 발생 시
- 중요한 상태 변화 시
즉,
사용자가 반드시 인지해야 할 순간입니다.
messagebox 문구 작성 팁
좋은 메시지 문구의 기준은 다음입니다.
- 무엇이 일어났는지
- 사용자가 무엇을 해야 하는지
- 짧고 명확하게
예:
“파일 저장에 실패했습니다. 경로를 확인하세요.”
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- messagebox는 사용자 알림 도구다
- showinfo / showwarning / showerror가 기본이다
- 모달 다이얼로그로 흐름을 제어한다
- 꼭 필요한 순간에만 사용한다
다음 강의 예고
다음 강의에서는
사용자 확인 다이얼로그 처리하기를 다룹니다.
이제
메시지를 보여주는 것을 넘어
사용자의 선택을 받기 시작합니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 50강 파일 열기 다이얼로그 사용하기 (0) | 2026.02.14 |
|---|---|
| [Tkinter] 49강 사용자 확인 다이얼로그 처리하기 (0) | 2026.02.14 |
| [Tkinter] 47강 팝업 메뉴 (Context Menu) 만들기 (0) | 2026.02.13 |
| [Tkinter] 46강 메뉴 명령 구조 설계하기 (0) | 2026.02.12 |
| [Tkinter] 45강 서브 메뉴 구성하기 (0) | 2026.02.12 |