[Python] ORM 기반 ToDo 프로젝트 만들어보기
개요 만들 것 단일 테이블( Todo )만 사용함. 기본 CRUD만 집중 배울 것 MySQL 연결 설정 ORM 모델 정의 기본 CRUD 작업 API 개발 및 테스트 과정 실습에 사용될 기술 스택 백엔드: Flask , SQLAlche...
39개 게시글
개요 만들 것 단일 테이블( Todo )만 사용함. 기본 CRUD만 집중 배울 것 MySQL 연결 설정 ORM 모델 정의 기본 CRUD 작업 API 개발 및 테스트 과정 실습에 사용될 기술 스택 백엔드: Flask , SQLAlche...
1. ORM이란? 🤔 ORM (Object-Relational Mapping) 의 핵심 개념 ORM은 객체-관계 매핑 의 약자로, 파이썬의 객체와 데이터베이스의 테이블을 자동으로 연결해주는 기술입니다! 매핑 관계 이해하기! Pyth...
1. 개요 저번주에 요청 받았던 의뢰 작업에 대한 내용을 간단하게 공유해보려고 합니다. 의뢰자분께서는 사내에서 영업부 팀원들이 사용할 수 있는 메일 전송 자동화 프로그램이 필요하다고 하셨어요! 의뢰자님께서 다음과 같은 기능이 필요하다...
개요 스레드에서 반복 작업을 수행할 때, 사용자가 "일시 중지" 버튼을 누르면 현재 진행 중인 작업을 멈추고, "재개" 버튼을 누르면 중단한 작업을 계속 진행할 수 있어야 합니다. 또한 "정지" 버튼을 누르면 스레드를 완전히 종료할...
개요 최근에 GUI 애플리케이션을 개발하면서 문득 든 생각인데, 백그라운드에서 시간이 많이 걸리는 작업(예: 웹 스크래핑)을 수행할 때 사용자에게 현재 진행 상황을 실시간으로 보여주는 Progress bar가 UI에 있으면 좋겠다라는...
개요 사용자가 만든 GUI 애플리케이션에서, 사용자가 입력한 설정(예: 페이지 수, URL 등)을 프로그램 종료 후에도 자동으로 저장하고, 이를 불러오는 방법에 대해 기록해보려고 한다. PySide6의 QSettings 클래스를 사용...
개요 PySide6를 사용하여 만든 GUI 프로그램에서 QTableWidget 의 모든 컬럼들이 GUI 화면의 남은 공간을 균등하게 채우도록 설정하는 방법에 대해서 기록해보려고 한다! 문제 상황 보통 QTableWidget 에 데이터...
개요 오늘은 여러 개의 QWidget 창을 생성하고, 버튼을 눌렀을 때 특정 QWidget 창을 열리며 로직이 수행되는 코드를 작성해보려고 합니다. 이 코드는 메인 창에서 로그인 창으로 이동 버튼을 클릭하면 로그인 창이 열리고, 새롭...
개요 PyInstaller 로 패키징된 .exe 파일을 디컴파일 하는 방법과 Pyarmor 로 코드 난독화를 진행하고 난독화가 된 .exe 파일을 PyInstaller 를 디컴파일 했을 때와 동일하게 진행하면 어떤 결과가 나오는지 기...
개요 PySide6의 QLabel 을 활용하여 Drag and Drop 기능을 구현해보려고 한다. 코드 작성 아래 코드는 PySide6로 Drag-And-Drop을 구현하는 간단한 예제 코드이다. 코드 설명 Drag-And-Drop...
개요 PySide6를 사용하여 GUI 애플리케이션을 개발할 때, QListWidget 은 목록을 표시하고 관리하는 데 매우 유용한 위젯이다! 종종 리스트 항목에 추가적인 데이터를 함께 저장하고 관리해야 하는 경우가 있는데, 이번 게시...
개요 PySide6를 활용하여 "폴더 선택" 및 "파일 선택" 기능을 구현하는 방법에 대해 기록해보려고 한다. QFileDialog 주요 메소드 및 예제 폴더 선택 (QFileDialog.getExistingDirectory) PyS...
개요 오늘은 PySide6를 활용하여 시/도 -> 시/군/구 -> 읍/면/동 단계별로 연동되는 지역 선택 기능을 구현해볼거다. 목표 1\. 시/도 선택: 첫 번째 QComboBox 에서 시/도를 선택한다. 2\. 시/군/구 선택: 선...
QThread를 사용하는 이유 UI 블로킹 방지: 메인 스레드(주로 UI 스레드)를 차단하는 작업을 QThread로 옮겨 실행하면, UI가 멈추지 않고 계속 반응하도록 처리할 수 있다. Qt의 이벤트 루프와 자연스럽게 연동: QThr...
들어가며 PySide6와 Selenium을 함께 사용해 GUI 애플리케이션을 만들 때, 앱이 종료되더라도 셀레니움 브라우저가 종료되지 않아 crashed 문제가 발생하는 경우가 있었다. 이번 글에서는 애플리케이션 종료 시 브라우저를...
개요 PySide6는 파이썬에서 Qt 라이브러리를 사용할 수 있도록 도와주는 도구로, 다양한 플랫폼에서 GUI 애플리케이션 개발이 가능하다. 이번 글에서는 PySide6를 이용해 기본적인 GUI 프로그램을 만드는 법부터 멀티스레딩을...
개요 셀레니움을 통해 로그인하여 로그인된 쿠키 정보를 requests 객체의 인자로 넘기는 방법에 대해서 알아보려고 한다. 이러한 작업을 하는 이유는 웹 크롤링의 효율성을 높이기 위해서이다. 셀레니움을 브라우저를 직접 제어하기 때문에...
개요 셀레니움으로 네이버 로그인을 진행할 때 Pyperclip 을 사용하면 헤드리스(headless)를 활성화할 수 없는 문제가 발생한다. 셀레니움의 headless 모드에서는 클립보드 접근이 제한되기 때문이다. headless 모드...
Yield 일반적으로 프로그래밍에서의 함수는 어떤 결과 값을 return 키워드를 이용해 값을 반환 한다. 하지만 파이썬에서는 함수에서 yield 키워드를 사용하면 다른 방식으로 값을 반환할 수도 있다. 간단한 예제 코드를 보며 이해...
개요 이번 게시글에서는 파이썬에서 조건 검사를 간결하고 효율적으로 처리할 수 있게 해주는 내장 함수인 any() 에 대해 기록해보려고 한다. 1. any() 함수란? any() 함수는 반복 가능한(iterable) 객체 의 요소 중...
개요 openpyxl 라이브러리를 사용하여 크롤링된 데이터를 엑셀로 넘기는 작업을 하고 있는데 이 때, 행 높이, 열 너비, 폰트 등을 조작하는 스크립트를 기록해놓으려고 한다. 스크립트 위 스크립트는 openpyxl 을 써서 엑셀 파...