Python - PySide6
7. Data 검색
7. Data 검색
2025.12.151. 목표더보기WHERE 조건문을 사용해 특정 사용자만 골라서 조회하는 방법을 익힌다.LIKE 연산자를 사용해 부분 검색 기능을 구현한다.검색어를 입력하는 QLineEdit와 검색 버튼(QPushButton)으로 검색 UI를 구성한다.검색 결과를 기존 QTableWidget에 다시 채워 넣어, 전체 조회와 검색 조회를 모두 지원한다.검색 실패, 접속 실패 등 예외 상황에서 적절한 메시지를 띄우고 로그를 남기는 흐름을 이해한다. 2. 전체 로직더보기import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, ..
6. Data 조회
6. Data 조회
2025.12.151. 목표더보기PySide6 폼에서 SELECT 문으로 users 데이터를 조회한 뒤, QTableWidget에 행 단위로 표시한다.QAbstractItemView 열거형을 사용해서 행 단위 선택, 읽기 전용 테이블을 설정하는 방법을 익힌다.오류 발생 시 QMessageBox와 QLabel, QFile + QTextStream으로 사용자 메시지와 로그를 남기는 흐름을 이해한다. 2. 전체 로직더보기1단계: 연결 테스트2단계: 데이터베이스 생성3단계: users 테이블 생성import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, Q..
5. Data 삽입
5. Data 삽입
2025.12.151. 목표더보기이 단계의 학습 목표QLineEdit, QPushButton을 사용해 간단한 입력 폼을 구성할 수 있다.MySQL INSERT SQL 문을 이해하고 직접 작성할 수 있다.파라미터 바인딩을 사용해 SQL Injection을 방지할 수 있다.PySide6의 QMessageBox로 성공, 실패 메시지를 표시할 수 있다.QFile, QTextStream을 사용해 삽입 로그를 파일로 남길 수 있다.전제 조건데이터베이스 pyqtdb가 이미 생성되어 있다.pyqtdb 안에 users 테이블이 이미 생성되어 있다.(id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(150), password VARCHAR(150)) 2. 전체 로직더보기import sysfrom ..
4. Table 생성
4. Table 생성
2025.12.151. 목표더보기데이터베이스와 테이블의 차이를 구분할 수 있다.MySQL 클라이언트에서 USE, CREATE TABLE, SHOW TABLES, DESCRIBE 기본 명령을 사용할 수 있다.users 테이블 구조를 설계한다.id, username, password 컬럼과 타입 의미를 이해한다.PySide6 애플리케이션에서 버튼 클릭으로 users 테이블을 생성하는 코드를 작성하고,MySQL 수업에서 사용한 모델링과 비교하여 학습한다.QFile, QTextStream으로 테이블 생성 로그를 남겨 보고, MySQL 클라이언트로 테이블이 생성되었는지 확인한다.이후 단계인 데이터 INSERT, SELECT에서 이 users 테이블을 재사용할 수 있는 기반을 만든다. 2. 전체 로직더보기1단계: 연결 테스트2단계:..
3. DB 생성
3. DB 생성
2025.12.121. 목표더보기mysql.connector를 사용해 MySQL 서버에 접속한 뒤 데이터베이스를 생성하는 기본 흐름을 이해한다.PySide6 GUI 에서 데이터베이스 이름을 입력받아 CREATE DATABASE를 실행하는 기능을 구현한다.try ~ except ~ mc.Error 패턴으로 예외를 처리하는 방법을 익힌다.생성 성공과 실패를 QLabel, QMessageBox로 사용자에게 안내하는 패턴을 익힌다.1단계에서 만든 host, user, password 입력 UI 구조를 그대로 활용하여 단계별 확장 구조를 학습한다. 2. 전체 로직더보기# ...class MySqlDemoWindow(QWidget): def __init__(self, parent=None): super().__in..
2. DB 연결
2. DB 연결
2025.12.121. 목표더보기MySQL Connector/Python 라이브러리 설치 방법을 이해하고 직접 설치해 본다.host, user, password, database로 구성되는 MySQL 연결 문자열 개념을 이해한다.PySide6로 간단한GUI 설정 창을 만들고 MySQL 접속 정보를 입력받는다.mysql.connector를 사용해 MySQL 서버 및 선택한 데이터베이스에 연결해 본다.try except 예외처리 사용해서 예외를 안전하게 처리하는 패턴을 익힌다.QLabel과 QMessageBox로 연결 성공, 실패, 오류를 한글로 안내하는 방법을 복습힌다. 2. 전체 로직더보기import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, Q..
1. DB 연동 개요
1. DB 연동 개요
2025.12.121. 간략 비교더보기MySQL 연동 방법 설명 실제 동작 위치 MySQL Connector/PythonPython 에서 MySQL 서버와 직접 통신에 필요한 기능을제공하는 범용 연결 도구Python 가상 환경(pip로 설치)QSqlDatabase(PySide6/QtSql)(Qt GUI 전용) Qt에서 제공하는 DB 연결 도구Qt GUI와 데이터 바인딩 가능한 Model 제공Qt PySide6 런타임 내부AWS RDS(MySQL)AWS 가 제공하는 클라우드형 MySQL 서버MySQL 서버 자체가 클라우드에 존재하는 형태AWS 클라우드 상(EC2와 별도) 2. 로컬 MySQL + MySQL Connector/Python 예제더보기2.1 라이브러리 설치pip install mysql-connector-pyt..
8.11 Dynamic Styling
8.11 Dynamic Styling
2025.12.081. 학습 목표더보기Dynamic Styling(동적 스타일링) 개념 이해setStyleSheet()를 이용해 실행 중에 위젯 스타일 바꾸기QVBoxLayout을 사용해 기본 레이아웃 구성하기QPushButton.clicked 시그널을 슬롯에 연결해서 스타일 변경 트리거 만들기 2. 예제 코드 더보기먼저 전체 코드를 한 번에 봅니다.# DynamicStyling.pyimport sysfrom PySide6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayoutfrom PySide6.QtGui import QColorclass DynamicStyle(QWidget): def __init__(self): super().__init..
8.10 QSS 스타일 적용하기
8.10 QSS 스타일 적용하기
2025.12.081. 학습 목표더보기 QSS(= Qt 스타일시트) 를 사용해서 앱 전체에 공통 테마 적용하기QApplication 을 상속해서 테마 전용 Application 클래스 만들기QFile 로 .qss 파일 읽어서 setStyleSheet() 에 적용하기QMainWindow + QPushButton 에 hover / pressed 상태 스타일 입히기 2. 파일 구조 만들기더보기CustomThemeExample/ ├─ custom_theme.qss # [CSS/QSS] 테마 정의 파일 │ # - QMainWindow, QPushButton 등 위젯 스타일 정의 │ # - hover, pressed 같은 상태도 설정 가능 │..
8.9 CSS 스타일 적용하기
8.9 CSS 스타일 적용하기
2025.12.081. 학습 목표더보기PySide6에서 QMainWindow / QLabel 기본 창 만들기styles.css(QSS) 파일을 따로 만들어 스타일 정의하기QFile, QIODevice 를 사용해 CSS 파일을 읽어와 setStyleSheet()로 적용하기스타일을 수정하면서 즉시 UI 변화 확인해보기 2. 프로젝트 구조 만들기 더보기qt_css_example/ ├─ main.py # 우리가 작성할 파이썬 코드 └─ styles.css # Qt 스타일 시트(QSS) 파일main.py : PySide6 앱, QMainWindow, QLabel, CSS 적용 코드styles.css : 배경색, 글자색, 폰트 크기 등을 지정하는 스타일 정의 3. 기본 QMainWindow + QLabel 만들기..
AWS RDS MySQL 인스턴스 설정 방법
AWS RDS MySQL 인스턴스 설정 방법
2025.12.081. 목표더보기이 단계에서는 AWS 콘솔에서 RDS MySQL 인스턴스를 직접 생성하는 방법을 배웁니다.AWS 콘솔에서 RDS 서비스로 이동표준(Standard) 방식으로 DB 생성MySQL 엔진 + Free Tier 템플릿 선택DB 인스턴스 이름 / 계정 / 비밀번호 설정용량(스토리지), 퍼블릭 접근, 포트 설정생성된 후 엔드포인트(Endpoint)와 포트 확인이 값들이 나중에 PySide6 + MySQL 연결 코드에서 사용될 핵심 설정값입니다. 2. RDS 콘솔 접속 및 데이터베이스 생성 진입더보기브라우저에서 AWS 콘솔 접속 (👉 https://console.aws.amazon.com/) 상단 검색창에 “RDS” 입력 후, Auroara And RDS 대시보드로 이동 대시보드 하단의 "데이터..
9.13 폰트 / 컬러 / 도움말
9.13 폰트 / 컬러 / 도움말
2025.12.071. 목표더보기 QFontDialog 를 사용해 폰트를 선택하고 QTextEdit 에 적용하는 방법을 이해한다.QColorDialog 를 사용해 글자 색을 선택하고 적용하는 방법을 이해한다.QMessageBox.about 을 사용해 간단한 도움말 창을 띄우는 방법을 익힌다.메뉴 액션(actionFont, actionColor, actionAbout_App)과 슬롯 함수를 연결하는 패턴을 익힌다.선택된 텍스트에만 폰트를 적용하는 방식과, 향후 입력될 텍스트에 폰트를 적용하는 방식을 구분해서 이해한다. 2. 전체 로직더보기# mainwindow.py . . . from PySide6.QtWidgets import QFontDialog, QColorDialog class MainWindow(QMainWind..