본문 바로가기
Python/GUI(tkinter)

독학 Python tkinter(GUI) - 00.소개

by To올라운더 2023. 10. 29.
반응형

0. tkinter(GUI) 소개

 - python에 조금 자신이 붙거나 또는

   어느 정도 원하는 결과를 코드로 만들 수 있게되면

   꼭 필요한 내용이 있다.

 - 바로 [배포]인데, 배포를 하기 위해서는 pyinstaller 등을 이용하여 exe로 변환만 진행하면 되지만,

   문자와 커맨드창으로 진행하는 CUI 방식은 컴퓨터가 낯선 사람들에게는 부담스러운 프로그램 환경이다.   

 - 그래서 그래픽을 동반한 프로그램으로 전달해줘야 상대방이 편리하게 사용 할 수 있고,

    사용자에 의한 오류적인 요소도 줄일 수 있다.

 - 제목에서 언급한 GUI란 (Graphical User Interface)의 약자인데, 영어 단어가 여러개가 나왔지만 당황할 필요는 없다.

 

 

 

1. GUI?? CUI?? UI(User Interface)?? 

 1) I (Interface)

 - Interface는 영어 단어로는 상호 작용이라는 뜻이지만 전산(IT)쪽에서는 서로 다른 2가지 시스템이 정보나 신호를 주고 받는 것을 인터페이스(Interface) 라고 부른다.

 - 2개의 시스템이 무엇이냐에 따라 하드웨어 인터페이스, 소프트웨어 인터페이스(API), 아래의 추가 설명될 사용자 인터페이스 등이 있다.

 

  2) UI (User Interface)

 - User Interface는 단순히 사람과 컴퓨터간의 정보나 신호를 주고 받는 것을 이야기한다.

 - 컴퓨터는 사람이 쓰는게 당연한게 아닌가라는 생각이 들 수 있지만,

   위에 언급한 것과 같이 프로그램간의 통신이나 다른 물리적인 장치와의 통신처럼 

   사람도 하나의 주체로 생각하고 접근할 수 있다.

 - 컴퓨터는 사람과 소통하기 위해 정보(신호)를 주거나 받게 되는데

   모니터, 스피커, 키보드, 마우스 등을 통해 사람은 원하는 정보를 컴퓨터에게 주거나 받을 수 있게된다.

 

 3) GUI (Graphical User Interface)

 - 드디어 처음 제목에 언급한 GUI까지 왔다.

 - 하지만 당연한 이야기가 당연하지 않은 것을 알기 위해 CUI와 비교하며 살펴보겠다.

 - CUI는 Charactor User Interface의 약자로 사용자(사람)와 컴퓨터간의 정보를 문자로만 전달한다.

  - 대부분의 사람들은 이런 검은 화면에 명령어를 쳐서 컴퓨터를 다루는 모습은 드라마나 영화에서만 봤을 것이다.

  - 실제 검은 화면에 나타난 명령어들은 오른쪽에 보이는 것처럼 단순히 D:\personal 이라는 폴더에 어떤 폴더와 파일이

    있는지를 보기 위해 경로를 이동하고, 해당 폴더를 조회 한 것이다. 

  - 당연히 명령어를 다 외워야하는 만큼 컴퓨터를 사용하는데 진입장벽이 높아질 것이다.

    (실제로 아직도 유닉스 등 일부 전문적인 분야에서는 CUI를 사용하며

     작업 속도나 리소스 부담 등을 고려할 때 GUI가 CUI보다 항상 좋은 상위의 개념은 아닙니다.)

  - 아무튼, 이런 진입장벽을 낮추는데 도움을 주는 것이 바로 GUI이다.

    (오른쪽 그림을 보면 마우스나 키보드를 통한 단순한 이동으로 내용을 확인할 수 있다.)

  - 우리가 컴퓨터를 쉽게 쓰는 이유는 바로 Windows라는 GUI 기능을 포함한 OS(운영체제)가 있기 때문이다.

 

 

  - 그럼 이제, 우리가 작성한 파이썬 코드를 살펴보자.

    아래는 지난 포스팅에서 설명한 폴더를 만드는 코드를 일부 수정한 내용이다.

  - 사용자에게서 폴더를 생성할 경로를 문자를 통해 받고 생성을 하는데,

    사용자가 경로를 이상하게 입력하거나, 입력해서는 안되는 특수 문자 등을 섞어서 입력한다면

    예상치 못한 장애가 발생할 수도 있고, 프로그램을 처음 접하며 사용이 어렵다는 부담감을 느낄 수도 있다.

import os

path1 = input('path1의 폴더를 생성할 경로를 입력하세요.')
path2 = input('path2의 폴더를 생성할 경로를 입력하세요.')



if not os.path.exists(path1):
    print('path1의 경로를 생성합니다.')
    os.makedirs(path1)    


if not os.path.exists(path2):
    print('path2의 경로를 생성합니다.')
    os.makedirs(path2)

 - 위의 글을 읽었다면 이런 코드로 구성된 CUI를 일반 사용자가 어려움을 느끼는 건 당연하다.

 

 - 그럼 어떻게 전달해야할까? 바로 GUI 방식으로 변경해주는 것이다.

   (*아래의 GUI는 연습삼아 만들었던 backup용 프로그램의 UI입니다.)

  - 우리는 이제 작성한 코드를 배포하기 위해 GUI를 배워보게 될 겁니다.

  - 배포라는 말에 좀 더 의미를 두고 이야기를 이어가보면

    1. 코드를 작성한 사람 외에 다른 사람도 사용할 수 있다는 의미이고,

    2. 프로그래밍 언어를 모르는 사람도 전달 받은 프로그램을 통해

       업무 시간을 단축하거나 작업이 단순해지는 등 유의미한 의미가 있다면

    3. 수익으로도 연결할 수 있다는 의미입니다.

2023.05.21 - [IT 배우기/이것저것] - 취미 겸 부업, 코딩1

 

취미 겸 부업, 코딩1

어쩌다보니 부업 겸 취미가 코딩이 되었다.... 코딩은 고급기술일까? 정말 배우기 어렵기만 한걸까? 오늘은 누구도 관심 없을 코딩에 대한 나의 경험에 대해서 잠깐 떠들어 보겠다. 1. 코딩 입문

to-all-rounder.tistory.com

 

 - 네. 단순히 나만 쓰는 코드가 아니라면 GUI는 필수적인 부분이라는 의미입니다. 

 

python은 pyside, pyqt 등 다양한 GUI를 지원하지만

우리는 python에 기본 라이브러리인 tkinter를 통해 

단순하지만 필요한 기능만으로 확실하게 기능을 구현해보겠습니다.

 

어렵지 않습니다. 걱정하지마세요. 이제 시작합니다. GO!!

반응형