SW개발 33

[python] PyQt5 그래프 그리기(feat. plotly, matplotlib)

PyQt5 환경에서 plotly 그래프 그리기 PyQt5는 python 으로 빠르게 GUI 프로그램을 만들 수 있게 도와줍니다. 특히 QtDesigner 를 사용해 직관적으로 콤보박스, 텍스트박스 등을 배치시킬 수도 있고, 코드로 직접 화면 구성을 할 수도 있죠. 최근에는 버전업이 되어 PyQt6가 나왔다고 하네요. 개발언어가 python이고 GUI 환경으로 프로토타입을 빠르게 만들어보고 싶다면 추천드립니다. 오늘은 PyQt5 환경에서 plotly 라이브러리로 그래프를 그리는 방법을 알아 볼게요. 1. 라이브러리 설치 PyQt5와 plotly 라이브러리는 당연히 설치되어 있어야 하고, 추가적으로 Plotly 그래프를 그리기 위해서 PyQtWebEngine 을 설치해줍니다. pip install PyQtW..

SW개발/python 2021.09.10

[python] 연도, 월별 손쉬운 for loop 생성 방법

데이터를 다루다보면 시계열 정보를 가공하고 처리해야할 경우가 많습니다. 예를들어 2021년 1월부터 12월까지 데이터를 수집하거나, 그 기간 동안만 데이터를 분석한다던지 여러가지 케이스가 있죠. 이번에는 이런 연도, 월별 등 손쉽게 for 문을 생성하는 방법을 공유하고자 합니다. 기존 방법 기존에는 무식하게(?) 하나의 리스트에 조회할 기간 정보를 넣었었죠. YYYYMM = ['202001','202002','202003','202004','202005','202006','202007'] for date in YYYYMM: print('조회결과: {}'.format(date)) 조회결과: 202001 조회결과: 202002 조회결과: 202003 조회결과: 202004 조회결과: 202005 조회결과: ..

SW개발/python 2021.07.29

[python] selenium 활용한 웹사이트 동작제어 실행

selenium 활용한 웹사이트 동작제어 실행 서론 지난 포스팅에서는 셀레니움을 활용하여 세종도서관 자동로그인을 구현했습니다. 이번에는 로그인 이후 사용자가 직접 클릭을 하는 것과 같이 웹사이트 동작 제어를 해 보겠습니다. 바로 사전로그인 동작을 말이죠! 본론 우선, 지난 포스팅 복습으로 코드를 다시 올려드립니다. 오늘 진행할 부분은 "2. 사전예약 자동제어" 부분에 코드를 추가할 꺼에요. import getpass from selenium import webdriver ''' 국립세종도서관 자동로그인 ''' options = webdriver.ChromeOptions() # headless 옵션 설정 : 개발환경이 리눅스라면 아래 두가지는 포함 options.add_argument('headless')..

SW개발/python 2021.06.21

[python] selenium 활용한 웹사이트 자동 로그인

셀레니움 활용한 웹사이트 자동 로그인 서 론 이번 글에서는 python selenium 라이브러리를 활용해 웹사이트 자동 로그인을 구현해 보겠습니다. selenium 모듈은 많은 기능이 있으며, 잘 활용한다면 웹사이트 조작에 여러가지를 자동화 할 수 있어요 제가 시도해 볼 대상 사이트는 세종시에 있는 "국립세종도서관" 홈페이지 입니다. 왜 도서관 홈페이지냐구요? 현재 코로나-19로 인해 사전 방문 예약으로 운영되고 있으며, 하루 400명 제한된 인원만 받고 있어요. 도서관 가서 빌리고 싶은 책이 있는데 사전 방문 예약에 실패해 갈 수가 없다면 너무 속상하지 않나요? 저는 지난번에 사전예약방문이 된 줄 알고 도서관까지 열심히 갔는데... 예약이 안되어 있었더라고요... 할 수 없이 도서관 앞에서 20여분 ..

SW개발/python 2021.05.27

[python] datetime 날짜,시간을 다루는 유용한 방법들

datetime 날짜 계산 - 변환방법 제목이 뭔가 애매모호 하긴 하지만 날짜, 시간 등을 (형)변환(convert) 하는 방법을 익혀봅시다. 기본적으로 자주사용하는 것이 문자열(str) 타입을 날짜,시간(datetime) 타입으로 바꾸는 일이며, 현재시간, 날짜를 구해서 시간 계산을 해본다거나 필요에 따라서 정말 여러 케이스들이 발생할 수 있겠죠? 현재날짜,시간 구하기 from datetime import datetime, timedelta # 현재날짜,시간(Datetime) 구하기 now = datetime.now() print("{} {}".format(type(now), now)) # 현재날짜,시간(Datetime) 구하기 today = datetime.today() print("{} {}".fo..

SW개발/python 2021.05.02

[학습노트] django 학습을 시작합니다.

1. 디렉토리 생성 - d 드라이브 아래 django_tutorial 디렉토리 생성 2. 가상환경 세팅(Vitual Enviroment) python -m venv myvenv 3. 가상환경 사용하기 myvenv\Scripts\activate (myvenv) D:\django_tutorial> 3. 가상환경에서 장고 설치하기 (myvenv) D:\django_tutorial>python -m pip install --upgrade pip (myvenv) D:\django_tutorial>pip list Package Version ---------- ------- pip 20.0.2 setuptools 41.2.0 (myvenv) D:\django_tutorial>pip list Package Versi..

SW개발/django 2021.04.28

[macOS] 크롬 브라우저 단축키 - 새로운 창열기, 창닫기, 마지막으로 닫은 탭 다시열기

크롬 브라우저 단축키 단축키는 이름에서부터 알 수 있듯이 유용하게 사용할 수록 불필요한 마우스클릭을 줄이며 높은 효율성과 생산성을 만들어 냅니다. 기본적으로 맥OS 에서 크롬 브라우저 창열고 닫을때 아래와 같은 단축키를 사용하지요. 창열기 : Command(⌘) + T 창닫기 : Command(⌘) + W 추가적으로 작업을 하다가보면 실수로 탭을 꺼버리는 경우가 발생합니다. 이때 마지막으로 닫은 탭을 복구하는 단축키는 아래와 같으니 익숙해두었다 유용하게 사용합시다. 닫은탭 복구 : Command(⌘) + shift + T 이상. 끝.

SW개발/macOS 2021.04.25

[SQL] 중복된 갯수 N개 이상 데이터 찾기

중복된 갯수가 N개 이상이 조건으로 데이터를 찾아 보겠습니다. 만약 NAME 컬럼 중에서 두번 이상 중복된 NAME 과 그 갯수를 카운트 하려면 어떻게 해야 할까요? 저는 GROUP BY 와 HAVING 문을 사용해 보았습니다. 우선 NAME 기준으로 GROUP BY 를 해보면 아래와 같죠. SELECT NAME FROM MyTable GROUP BY NAME 여기서 중복된 갯수 카운트를 위해 COUNT 문과 2개 이상 조건으로 HAVING 문을 추가 해 보겠습니다. SELECT NAME, COUNT(NAME) AS CNT FROM MyTable GROUP BY NAME HAVING CNT > 1 두명의 중복된 사람이 있었고 각각 2번씩 데이터가 들어 있었네요. 추가적으로 NAME 정렬을 반대로 하고 싶..

SW개발/SQL 2021.04.14

[macOS] 맥OS TEK_Daemon 지우기

맥OS TEK_Daemon 지우기 가족관계증명서 출력한다고 전자가족관계등록시스템 접속하면서 키보드 보안프로그램이랍시고 설치된거 같네요. 젠장 뭔 "거부"를 눌러도 지워지지도 않아... 하 나참! 혹시 저와같은 문제를 만난 분들게 도움이 되고자 포스팅 남깁니다. 우선 "시스템 환경설정" 접속 -> "보안 및 개인정보보호" 클릭 좌측아래 보이는 열쇠 모양이 풀려야 작업이 가능합니다! "개인정보보호"탭 (아마 디폴트) -> "손쉬운 사용"(아마 디폴트, 아니라면 선택) -> TEK_Daemon 우클릭 우클릭하면 "Finder에서 보기"가 뜨는데요. Finder 창이 열리면 "TEK_Deamon" 우클릭 하여 휴지통으로 이동! 그리고 재부팅 해보세요! 다시는 만나지 말자~ TEK! 이상 끝.

SW개발/macOS 2021.04.12