본문 바로가기

프로그래밍49

[Django] 장고 기본 웹서버 띄우기 기본 Django 개발도구 설치 및 설정 Django가 설치된 환경은 Ubuntu 20.04 LTS 이다. python과 pip등 개발에 필요한 도구들을 설치해준다. $ sudo apt-get install python3 pip3 venv vim 설치 후엔 좀 더 편하게 도구들을 사용하기 위해 .bashrc에 alias를 등록해준다. 각 사용자 계정에 위치한 .bashrc 파일을 열어 ll, la 등의 기본 alias 내용이 있는 곳에 같이 입력해주면 된다. 이 과정은 필수는 아니지만 개인적으로 해두면 편해서 만들어 줬다. alias python='python3' alias pip='pip3' alias vi='vim' 입력 후엔 source .bashrc 명령어를 입력해준다. $ source .bash.. 2022. 3. 28.
[Python] 데코레이터 (@, Decorator) 파이썬의 데코레이터란? 먼저 Decorate는 '장식하다' 라는 의미가 있고, 따라서 직역하면 '장식자'라는 의미가 된다. (구글 번역기에서는 a person who decorates something. 로 정의되어 있다.) 파이썬에서도 원래 뜻과 비슷한 의미로 사용되는데 @ 기호로 표현 할 수 있으며, 클래스나 메소드를 정의할 때 많이 사용되어 진다. 데코레이터는 직접 정의하여 사용하거나 미리 정의된 내용을 가져와 사용이 가능하다. (정의된 데코레이터는 @property, @classmethod, @staticmethod 등이 있다.) 데코레이터를 작성하면 원본 메소드의 내용을 수정하지 않고 여러 기능을 추가할 수 있게 된다. 메소드(함수)의 실행시간 측정 실행과 종료에 로그 기능 추가 ... 메소드 .. 2022. 3. 21.
[WPF] YouTube Player 1. UI/ XML 2. C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;.. 2022. 3. 10.
[Python] min, max 함수 min (max) 함수 파이썬에서는 여러 대상들(리스트 등) 중 가장 큰 값 또는 가장 작은 값을 구하는 함수가 있다. min, max 함수인데, 아래 방법을 사용하면 이런 함수들을 좀 더 잘(?) 활용할 수 있다. 함수 Parameter에 key=func 주기 list_num = [1, 2, 5, 4, 5, 5, 6, 7, 8, 1] print(max(list_num, key=list_num.count)) # count가 가장 많은 5가 출력 위 코드는 list_num.count를 list_num을 대상으로 실행하고, 해당 값들의 최대값을 출력한다. 따라서 list_num 내부에 가장 개수가 많은 5가 출력된다. 2022. 3. 10.
[WPF] OpenCvSharp4로 윈도우 안에 카메라 영상 그리기 1. 목적 WPF에서 OpenCV를 활용하여 기본 WPF 컨트롤인 Image에 노트북 (또는 USB) 카메라에서 가져온 영상을 Bitmap 형식으로 그려줌 환경 구축 및 빌드는 https://hwan001.tistory.com/144?category=836235 링크 참조 2. 코드 (Xaml) 3. 코드 (C#) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu.. 2022. 2. 2.
[WPF] OpenCVSharp 4 Nuget 설치 1. 설치 목적 WPF에서 OpenCV 최신 버전(2022년 2월 2일 기준) 기능 사용 2. 주의점 OpenCVSharp4는 여러개의 Nuget으로 나워져 있음 한 개라도 없으면 함수 또는 자료형의 일부를 찾을 수 없음 3. 설치 (Nuget Package Manager) - WPF 환경에서 사용하기 위해 초록색 박스 부분 (OpenCvSharp4, OpenCvSharp4.runtime.win, OpenCvSharp4.WpfExtentions) 설치 - 윈도우 환경이라면 빨간색 박스 부분 설치가 더 간편함 (OpenVcSharp4.Windows) 4. OpenVcSharp4.Windows (빨간 박스) 설치 완료 2022. 2. 2.
[python] lambda 표현식 1. lambda 표현식 요약 - 함수를 하나의 식으로 표현한 것으로 다른 함수의 매개변수로 전달이 가능함 - 함수의 이름이 없기 때문에 익명 함수라고도 불림 - 함수 표현식 사용할 경우 속도가 저하된다고 함 (정확하지 않음, 재확인 필요) 2. 사용법 # Case 1. lambda 함수 정의 후 매개변수 전달 function_lambda = lambda x : x + 1 print("result : ", function_lambda(1)) # result : 2 # Case 2. 한번에 매개변수 전달 print("result : ", (lambda x : x + 1)(1)) # result : 2 # Case 3. 외부 변수 활용 y = 1 print("result : ", (lambda x : x +.. 2022. 1. 7.
[python] 실행 시 필요한 패키지 자동 설치 패키지 설치 sys와 subprocess를 활용하여 pip를 호출한다. 아래 코드를 사용할 환경에 python과 pip가 설치되어 있고, 인터넷이 연결되어 있어야 작동한다. import sys import subprocess try: # 없는 모듈 import시 에러 발생 import pandas except: # pip 모듈 업그레이드 subprocess.check_call([sys.executable,'-m', 'pip', 'install', '--upgrade', 'pip']) # 에러 발생한 모듈 설치 subprocess.check_call([sys.executable,'-m', 'pip', 'install', '--upgrade', 'pandas']) # 다시 import import pandas 2022. 1. 1.
[PowerShell] File_Share.ps1 1. 개요 - 같은 라우터 내부에서 외부 인터넷이 제한되었으며, 파일을 공유해야할 때 작성하여 사용 - 같은 공유기 내부의 사설 IP(Private IP)를 사용하여 TCP 소켓 스트림 방식으로 파일을 송수신함 2. 사용법 - 원하는 경로에 File_Share.ps1, send.bat, recv.bat의 3개 파일을 위치시키고, 동일 위치에 전송할 대상을 send.zip으로 압축해 넣어둔다. - 파일을 받을 대상 PC에서 recv.bat을 실행 시키고 send.zip이 위치한 PC에서 send.bat을 실행한다. 3. 코드 (파워쉘 스크립트 작성) # File_Share.ps1 param ( [int] $sel = 1, [string] $IP = "127.0.0.1", [int] $Port = 29800.. 2021. 10. 10.
[PowerShell] 파워쉘 사용법 정리 1. 개요 - 윈도우에 파워쉘 ISE가 내장되어 있음 - 기본 OS 설치 시 별도의 IDE, 인터프리터, 가상머신 등을 설치하지 않고 간단한 기능들을 제작할 수 있음 2. ISE - 윈도우+R > Powershell 입력 > ISE 입력 후 엔터 3. 기본 골격 # Power Shell Script Example function Get-SecurityEvents { [CmdletBinding()] Param( [Parameter(Position=0,Mandatory=$True)] [string]$ComputerName, [int]$EventID = 4634 ) BEGIN { $LogName = Read-Host "로그 이름을 입력하세요." } PROCESS { Get-EventLog -ComputerNa.. 2021. 9. 22.
[Python] FinanceDataReader 모듈 1. 조회 가능 범위 한국거래소(KRX)에 상장된 주식종목 리스트와 코넥스(비상장)에 있는 주식종목 리스트: 'KRX', 'KOSPI', 'KODAQ', 'KONEX' 글로벌 주식종목 리스트: 'NASDAQ', 'NYSE', 'AMEX' and 'S&P500', 'SSE'(상해), 'SZSE'(심천), 'HKEX'(홍콩), 'TSE'(도쿄) 한국거래소의 상장폐지종목과 관리종목 리스트: 'KRX-DELISTING'(상장폐지종목), 'KRX-ADMINISTRATIVE' (관리종목) 한국, 미국, 일본의 ETF 리스트: 'KR', 'US', 'JP' 주가(KRX): '005930'(삼성전자), '091990'(셀트리온헬스케어) ... 주가(Word wide): 'AAPL', 'AMZN', 'GOOG' 지수: .. 2021. 7. 31.
[Python] pykrx 모듈 1. 개요 pykrx : https://github.com/sharebook-kr/pykrx - KRX 거래소 서버에서 값 받아옴 - 국내 KOSPI, KOSDAQ, KONEX 정보 확인 가능 sharebook-kr/pykrx KRX 주식 정보 스크래핑. Contribute to sharebook-kr/pykrx development by creating an account on GitHub. github.com 2. 설치 pip install pykrx 3. 코드 from pykrx import stock # 원하는 조건의 티커 목록 얻어오기, market 설정 안해줄 경우 기본은 KOSPI # 아래 조건은 2021년 6월 1일 기준의 KOSDAQ 상장사들의 티커를 받아옴 tickers = stock... 2021. 5. 27.
[Python] yfinance 모듈 1. 개요 yfinance : https://pypi.org/project/yfinance/ - API와 티커 값을 사용해서 해외 주가 정보를 받아올 수 있다. - 야후에서 제공 (무료) - 특정 종목(티커)에 해당하는 과거 시점의 모든 데이터를 얻어올 수 있음 - Date, Open, High, Low, Close, Volume, Dividends, Stock Split 정보를 포함 - 애널리스트 평가 정보 가져오기 가능 yfinance Yahoo! Finance market data downloader pypi.org 2. 설치 pip install yfinance 3. 사용 yf_GoogleA = yf.Ticker("GOOGL") # AAPL, TSLA, GOOGL ... yf_Tesla = yf... 2021. 5. 27.
[Python] pycryptodome 모듈 1. 개요 pycryptodome : https://pycryptodome.readthedocs.io/en/latest/ - 파이썬에서 RSA, hash 등 암호화 관련 기능 제공 Welcome to PyCryptodome’s documentation — PyCryptodome 3.9.9 documentation pycryptodome.readthedocs.io 2020. 9. 26.
[WPF] Visual Studio 2022 개발 환경 구축 및 프로젝트 빌드 1. Visual Studio 2022 Community 설치 2. 새 프로젝트 만들기 > WPF 앱 (.NET Framework) 선택 3. XAML/ 디자인 편집기와 C# 편집기 4. 빌드 및 실행 2020. 3. 15.
[Python] 원 나누기 1. 개요 - 돌림판에 사용될 원 그리기 2. 코드 # -*- coding: utf-8 -*- import sys import pygame import math from pygame.locals import * PI = 3.14159265359 R = 200 screenX = 410 screenY = 410 Ox = screenX / 2 Oy = screenY / 2 # 초당 프레임수를 정의 TARGET_FPS = 30 clock = pygame.time.Clock() # 색 정의 BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) WHITE = (255, 255, 255) # 실수를 더하기 위해서 만들어줌 def myra.. 2016. 10. 3.
[Python] 돌림판 1. 개요 - pygame 라이브러리를 사용하여 윈도우를 그림 - 스페이스 바로 돌림판의 회전과 정지를 정함 - 정지 시 천천히 멈춤 (회전각을 0까지 빼줌) 2. 코드 #-*- coding: utf-8 -*- import sys import pygame from pygame.locals import * import time # 초당 프레임수를 정의 TARGET_FPS = 30 clock = pygame.time.Clock() # 색 정의 BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) WHITE = (255, 255, 255) # 라이브러리 및 디스플레이 초기화 pygame.init() screen = pygame.d.. 2016. 10. 3.
[Python] 키로거 + 스크린샷 1. 개요 - 현재 포커스를 가지고 있는 프로세스를 파악 - 키 다운 이벤트 발생한 버튼이 프린트스크린이면 전체 화면을 캡쳐한 후 파일로 저장 2. 코드 from ctypes import * import pythoncom import pyHook import win32clipboard import win32gui import win32ui import win32con import win32api user32 = windll.user32 kernel32 = windll.kernel32 psapi = windll.psapi current_window = None def screenshot(): # win32API를 사용해서 전체 화면의 스크린샷을 파일로 만들어줌 hdesktop = win32gui.GetDe.. 2016. 9. 18.
[Windows] 윈도우 로그인 배경화면 변경 [기본 지식] - 로그인 배경화면 변경 방법 - 관리자 권한 요구 - 파일열기 대화상자 - 레지스트리 변경 방법 [Example Source] #include #include #include "ShReg.h" // Windows API정복 책 참조 #define KEY L"SOFTWARE\\Microsoft\\windows\\CurrentVersion\\Authentication\\LogonUI\\Background" #define PATH L"C:\\windows\\system32\\oobe\\info\\backgrounds\\backgroundDefault.jpg" #define DIRPATH L"C:\\windows\\system32\\oobe\\info\\backgrounds" LRESULT CA.. 2016. 9. 17.
[Windows] 환경 변수 얻어오기 (Win32API) 1. 개요 ExpandEnvironmentStrings(LPCTSTR lpSrc, LPTSTR lpDst, DWORD nSize) - 환경 변수에 저장된 데이터를 불러올 수 있음. Parameter - lpSrc : 아래 표의 왼쪽 값을 문자열로 넣어줌. - lpDst : 아래 표 오른쪽 결과를 얻어옴. - nSize : lpDst 의 크기 2. 코드 #include #include #define SYSTEMDRIVE "%SystemDrive%" #define PUBLIC "%PUBLIC%" #define USERDOMAIN "%USERDOMAIN%" #define USERNAME "%USERNAME%" #define OS "%OS%" #define COMPUTERNAME "%COMPUTERNAME%" .. 2016. 9. 4.