본문 바로가기
데이터 AI 인사이트 👩🏻‍💻/KPMG 교육

인공지능과 생성형 AI (4) Tkinter 패키지, GUI 구현, 파이썬 (함수 / 패키지 / 모듈)

by Hayley S 2024. 12. 5.

SQL에서 데이터베이스 테이블 만들고, 파이썬에서 Tkinter 패키지 사용해서 GUI 만들어서 정보 맞는지 연결한다.

먼저 MYSQL Workbench에서 e-commerce라는 데이터베이스를 생성하고, users라는 테이블을 만들어서 id와 password를 입력했다.

 

다음으로 Visual Studio Code를 실행해서 Tkinter 패키지를 사용하여 GUI를 구현한다.

mysql.connector는 MySQL 데이터베이스와 파이썬 프로그램 간의 연결을 가능하게 하는 라이브러리다. 이를 통해 Python 코드에서 MySQL 데이터베이스에 접근하고 SQL 쿼리를 실행할 수 있는 기능을 제공한다.

데이터베이스와 연결하기 위해 connect() 함수를 사용하고, SQL 명령을 수행하기 위해 cursor()를 사용하는 방식으로 동작한다.

 

id와 password 입력하면 DB에 연결되어 저장될 수 있도록 한다.

cursor.execute(”INSERT INTO users (id, password) VALUES (%s, %s)”, (user_id, user_password))

 

DB에 있는 id와 password가 일치한지 확인한다.

cursor.execute(”SELECT * FROM users WHERE id = %s AND password = %s”, (user_id, user_password))

 

GUI 화면 구성을 한다.

여기까지 하면 회원가입이 끝났고, 조회가 끝나서 로그인을 하게 되면, 회원과 로그인이 끝나고 나면 금요일에 다뤘던 재미니 챗봇을 이용할 수 있게 오픈할 수 있다. 로그인 정보 (시간, 유저, 질문, 응답)에 해당하는 내용도 DB를 구성해서 정보를 저장시켜놓을 수 있다. 재미니에서 들어오는 질문과 답변을 DB로 구성해서 정보를 축적해서 기록해놓을 수 있다.

단순히 사용자가 어떤 응답을 했는지가 중요한 것이 아니라, 같은 질문을 받았을 때, 속도가 빠르게 줄 수 있다. 회사에서 앞으로 gpt가 활성화된다면, DB에서 미리 같은 질문에 대한 답을 미리 다운이 되어서 빠른 응답속도를 보일 수 있다.

클라우드에서는 꽤 좋은 방법이다. 용량과 속도에 해당하는 부분이 차라리 gpt를 찾는 것이 나을 수도 있어서 검수가 필요하다. 일단 DB화 하는 것을 고민해야한다. 그래서 설계를 해야한다. 파워포인트 같은 곳에 로그인 화면을 만들거면 UI를 그리면서 회원가입 DB를 찾아서 로그인을 하게되면 아이디와 패스워드가 일치하다면 로그인 화면을 다시 만든다.

네이버나 구글에 들어갈 때, 네이버에 접속한 화면에 있는 이미지들은 내 컴퓨터에 일정량 이미 다운되어있다. ‘캐쉬메모리’에 이미 다운되어 있다. gif같은 파일이 다 다운받아져 있다. 구글은 이미지 파일이 몇개 없지만, 네이버는 많은 이미지들이 있다. 이런 이미지들이 이미 temp라는 폴더 안에 다 다운되어 있다. 인터넷 접속이 원활하지 않더라도 이미 다운되어 있기 때문에 빨리 나온다.

 

선생님 코드

 

Class라는 모듈을 사용해서 연결함

우리가 다루는 함수, 클래스 들을 모듈화하는 방법들에 대해 공부해야한다. 문제 생겼을 때 어떻게 처리할지 예외처리를 해야한다.

개발쪽으로 가려면 함수, 클래스 엄청 잘해야 한다.

 

점프투파이썬 - 위키독스 <함수파트 4장>

https://wikidocs.net/book/1

 

점프 투 파이썬

이 책은 파이썬이란 언어를 처음 접해보는 독자들과 프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 한다. 프로그래밍을 할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어서 …

wikidocs.net

 

인공신경망 코드

** 가 어떤 의미를 갖고 있는지, 각 함수가 어떤 기능을 하는지 알기 위해 공부하는 것이다.

 

지역변수

 

전역변수

 

def 함수 이용해서 사칙연산

절차지향언어 & 객체지향언어

파이썬은 객체지향언어이기는 하지만 완벽하진 않다. 객체지향언어론을 따로 공부한다. 객체지향언어의 단점은 속도가 느리고, 함수에 대해서 알아야하고, 문법도 알아야해서 프로그래밍을 하는데 속도가 느리다. 여러사람이 쓰거나 나중을 생각하는 작업론이긴 하다.

 

클래스

이정도만 알면 된다. 클래스 꼭 ()없어도 된다.

모듈 / 클래스 / 함수 구분 → 직접 체험해보기


코딩도장 패키지 모듈만들기

https://dojang.io/mod/page/view.php?id=2337

 

파이썬 코딩 도장: 29.1 Hello, world! 출력 함수 만들기

Unit 29. 함수 사용하기 프로그래밍을 하다 보면 들어가는 값만 바뀔 뿐 같은 코드가 계속 반복되는 경우가 많습니다. 특히 같은 코드를 반복해서 작성하면 코드도 길어지고 중간에 실수할 가능성

dojang.io

프로그래밍을 익히는데에 있어서 관심있는 하나를 제대로 해보는 것이 좋다. 그 중 좋은 예제가 퀀트투자이다.

증권회사 가입해서 API를 가져와서 화면자체를 구성한다. 내가 뭐하러 이 고생을 해요?라고 한다면 내가 나만의 방식으로 만들어보는 것이다. 화면구성을 해보는 것이 좋다.

오스템 임플란트, NC소프트 증권 사건

NC소프트에 한번 문제 있을 때, 프로그램 새로 나올 때 하한가를 친다고 예상했는데 예상과 다르게 상한가를 쳤던 것이다. 근데 엄청 많이 누가 매수를 해서 일론 머스크라고 예상했었다. 오스템 임플란트 횡령사건의 용의자가 산 것이다. 그래서 그때 거래정지를 했었다. 그런데 그때 주식시장이 폭락을 했었다. 오스템 임플란트는 폭락을 피했다. 주식은 아무도 모른다..

인공지능이 맞추는 많은 분야 중에서 틀리면 다시 학습하고 또 학습하는 것을 강화학습이라고 한다. 하지만 단순하게 회사 지표만 맞추는 분야가 아니기 때문에, 주식도 못맞추고, 일반적인 패턴으로만 학습하기 때문에 급변하는 건 못맞춘다.

지금까지 한 것과 같이 로컬이 아니라 웹 관련 언어들을 해볼 것이다.

월드 와이드 웹 (WWW)

WWW 유래는 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 시스템, 웹의 유래이다.

http는 하이퍼텍스트 전송 프로토콜이다. 월드 와이드 웹의 토대이며, 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용된다.

홈페이지를 만들다 보면 페이지만 30-40개씩 만든다. 30-40개의 페이지를 모두 파랑색으로 바꿀거면 하나하나 넣을것인지, 혹은 CSS 사용해서 연결다해서 한번에 바꿀 수 있다. 연결하는 프로그램으로 CSS인 것이다.

프로그램에서는 이 작업이 웹에서는 로컬에서 해도 나혼자 볼게 아니라 이미지도 내 컴퓨터에 있어봤자 의미가 없다. 웹서버가 있어서 다른사람이 접속할 수 있다. 그래서 업로드를 해줘야한다. 내 컴퓨터에 있건 테스트를 많이 했건 의미없다.