input/print · Entry/Label · 손짓·음성하는 일은 같습니다. 사용자가 의도를 전하는 방식만 다릅니다. 아래 CLI와 hello-tk를 나란히 보세요.
인공지능 파이썬 실무
Ⅱ. GUI 프로그래밍 · 주제 01 / 10
사용자가 어떤 행동으로 프로그램에 의도를 전달하나요?
대단원 Ⅱ. GUI 프로그래밍 교과서 40–59쪽
중단원 01. GUI 프로그래밍 개요 · 42–48쪽
소단원 01. 사용자 인터페이스 · 43–44쪽
이 웹 주제의 연계 범위: 40–44쪽
웹 학습 주제 01 / 10
사용자가 어떤 행동으로 프로그램에 의도를 전달하나요?
| 종류 | 입력 예 | 특징 |
|---|---|---|
| CLI | 명령어 타이핑 | 정확한 명령 필요 |
| GUI | 버튼 클릭 | 시각적으로 선택 |
| NUI | 음성·몸짓 | 자연스러운 상호작용 |
BEFORE THE CODE
새 이름·속성이 코드에 나오기 전에 짧게 봅니다. 외우기보다 역할을 먼저 구별하세요.
input/print · Entry/Label · 손짓·음성하는 일은 같습니다. 사용자가 의도를 전하는 방식만 다릅니다. 아래 CLI와 hello-tk를 나란히 보세요.
사람과 시스템이 의도를 주고받는 접점입니다. 버튼·색·배치·피드백이 모두 UI입니다.
명령어 / 아이콘·메뉴·버튼 / 음성·손짓·터치. 분류가 겹치는 사례(터치 GUI)도 있습니다.
RESULT PREVIEW
UI는 사람과 시스템이 상호 작용하는 접점입니다. 화면의 버튼·입력창·메뉴뿐 아니라 색상·글꼴·배치·피드백도 사용 편의성에 영향을 줍니다. 같은 기능이라도 저장 버튼을 찾기 어렵다면 사용자는 실수하기 쉽습니다.
CLI는 명령어 입력 방식입니다. 반복 작업 자동화와 정확한 명령 전달에 유용하지만 문법을 배워야 합니다. GUI는 아이콘·메뉴·버튼 같은 시각 요소를 조작합니다. NUI는 음성·손짓·터치 등 자연스러운 행동을 사용합니다. 터치 GUI처럼 분류가 겹치는 사례도 있습니다.
생각 열기: 파일 100개 이름을 바꾸는 일과 사진 한 장을 자르는 일에 각각 어떤 인터페이스를 선택할까요? 편리함은 사용자 경험과 작업 목적에 따라 달라집니다. 44쪽 탐구의 dir 입력은 CLI, 아이콘 클릭은 GUI, 손짓으로 TV 조작은 NUI입니다.
48쪽 확인학습은 UI 정의, GUI 장점, NUI 사례, 라이브러리 특징을 묻습니다. 아래 CLI 예제와 같은 인사를 창으로 만든 hello-tk를 나란히 실행해 보세요. 파일 100개 이름 바꾸기는 CLI가, 사진 한 장 자르기는 GUI가 편한 경우가 많습니다.
예제를 선택하면 바로 아래에서 코드를 수정하고 실행할 수 있습니다. 작성한 코드는 예제별로 저장됩니다.
BEFORE THE CODE
새 이름·속성이 코드에 나오기 전에 짧게 봅니다. 외우기보다 역할을 먼저 구별하세요.
name = input("이름: ")터미널에 질문을 보여주고, 한 줄 입력을 문자열로 받습니다. GUI의 Entry와 같은 역할입니다.
print(f"{name}님, 안녕하세요!")결과를 글자로 보여 줍니다. GUI의 Label.config(text=...)와 같은 역할입니다.
명령어를 타이핑해서 프로그램을 다루는 방식입니다. 반복 작업에 유리합니다.
버튼·입력창처럼 눈에 보이는 부품을 조작하는 방식입니다. 다음 예제 hello-tk가 같은 인사를 창으로 만듭니다.
음성·손짓·터치처럼 일상 행동으로 의도를 전달하는 방식입니다.
BEFORE THE CODE
새 이름·속성이 코드에 나오기 전에 짧게 봅니다. 외우기보다 역할을 먼저 구별하세요.
root = tk.Tk()빈 창을 만듭니다. 이 창이 Label·Entry·Button의 부모입니다.
root.title("제목")
root.geometry("480x260")창 제목과 처음 크기를 정합니다. 크기를 빼도 위젯을 붙이면 창이 맞춰집니다.
tk.Label(parent, text=..., font=...)글자를 보여 줍니다. 나중에 config(text=...)로 바꿀 수 있습니다.
entry = tk.Entry(parent)한 줄 입력을 받습니다. get()으로 읽고, delete(0, tk.END)로 지웁니다.
tk.Button(parent, text=..., command=함수)클릭하면 command에 넣은 함수를 실행합니다. command=함수()처럼 괄호를 붙이면 버튼을 만들 때 바로 실행됩니다.
위젯.pack(pady=8, fill="x")위젯을 창에 붙입니다. 생성만 하고 pack을 빼면 화면에 보이지 않습니다.
root.mainloop()클릭·입력을 기다리는 이벤트 루프입니다. 이 줄 아래의 코드는 창을 닫을 때까지 실행되지 않습니다.
창 안의 부품입니다. Label·Entry·Button이 위젯입니다.
사용자의 클릭·입력을 순서대로 받아 처리하는 반복입니다. mainloop가 그 역할을 합니다.
HISTORY / VIDEO
Tk는 1991년 John Ousterhout가 Tcl에 붙인 GUI 툴킷입니다. 파이썬 표준 라이브러리의 tkinter는 이 Tk를 연결하므로, 많은 환경에서 별도 설치 없이 창과 버튼을 만들 수 있습니다.
Tkinter Course — Create Graphic User Interfaces in Python (freeCodeCamp) ↗
영어 공개 강의입니다. 처음에는 창·Label·Button·pack만 따라 보고, 나머지는 필요할 때 이어서 보세요. 학교 네트워크·연령 정책을 확인하세요.
RESULT PREVIEW
CODE WORKSPACE
실행 엔진은 처음 실행할 때 내려받습니다. 패키지 크기에 따라 최초 준비에 최대 3분이 걸릴 수 있으며 네트워크가 필요합니다. 실행은 최대 30초이며 중지 후 다시 실행할 수 있습니다.
실행할 예제를 선택하세요.
PRACTICE / RETRY / UNDERSTAND
이 주제와 연결된 문제만 보여 줍니다. 단원 전체 문제는 단원 안내 페이지에서 이어서 풀 수 있습니다.