파이썬
-
Python: Popen 백그라운드 실행 및 로그 읽기 (linux)컴퓨터/파이썬 2020. 12. 22. 09:22
subprocess subprocess — Subprocess management — Python 3.9.1 문서 subprocess — Subprocess management Source code: Lib/subprocess.py The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules and docs.python.org 1. 할 것 popen으로 서버 프로그램을 실행해서 터미널을 닫아도 종료가 안되게 만들고 (이 글에선, Apache..
-
Python: Kafka + 대학교 공지 Parser + Slack API + MySQL컴퓨터/파이썬 2020. 12. 15. 15:00
결과물 1. 만들 것 사실, 하나의 파일로, parsing 하고, slack api에 전달하고, mySQL이나 json으로 저장해도 되지만 (Kafka Connect Sink로 해도 되고 방법은 많다.) 공부해본 것을 사용하기 위해, 짬뽕 Apache Kafka Producer에서 대학교 공지 데이터 불러오기 MySQL로 공지 저장과 동시에 Consumer로 데이터 전달하기 Apache Kafka Consumer에서 Slack API를 이용하여 댓글 남기기 (카카오톡 챗봇이 수락이 되면 카카오톡 챗봇으로 업데이트 예정) (서버 부담을 덜기 위해, 1시간 간격으로 공지 파싱) 2. 준비물 Apache Kafka Apache Kafka Apache Kafka: A Distributed Streaming Pl..
-
Python: MySQL 사용하기컴퓨터/MySQL 2020. 12. 14. 16:00
MySQL MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. www.mysql.com 할 것 MySQL 서버 실행 Python용 MySQL connector db 만들고 간단하게 table CREATE, SELECT 설치 MySQL 다운로드 dev.mysql.com/downloads/mysql/ Windows 10 my.ini 경로: C:\ProgramData\..
-
Python rich: Console 출력 색깔, 꾸미기컴퓨터/파이썬 2020. 12. 13. 13:10
rich rich Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal pypi.org 1. 소개 rich-console은 python으로 powershell이나 cmd 출력 창을 꾸미는 라이브러리이다. 설치 pip install rich 2. 예제 API 문서 링크: @링크 dictionary, 함수 local value 출력 from rich.console import Console data = [ { "jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1", }, {"jsonrpc": "2..
-
Python: with문 만들어 사용하기컴퓨터/파이썬 2020. 12. 11. 10:13
with contextlib — Utilities for with-statement contexts — Python 3.9.1 documentation Most context managers are written in a way that means they can only be used effectively in a with statement once. These single use context managers must be created afresh each time they’re used - attempting to use them a second time will trigger an excep docs.python.org 1. with문 파이썬에서는 with문을 이용해서 외부 리소스를 간편히 이용..
-
파이썬: Tarjan 알고리즘 (Strongly Connected Components)컴퓨터/파이썬 2020. 11. 23. 22:10
Tarjan's Algorithm Tarjan's strongly connected components algorithm an algorithm in graph theory for finding the strongly connected components (SCCs) of a directed graph. en.wikipedia.org 1. 소개 타르잔 알고리즘은 Kosaraju 알고리즘처럼 방향 그래프에서 strongly connected component들을 찾아내는 더 나은 알고리즘이다. (코사라주는 DFS 2개, 타르잔은 DFS 1개를 이용해 linear하게 찾을 수 있음) (Airport Connections와 같은 문제에서 사용할 수 있다.) 아래는 William Lin이라는 고등학생 학생과 a..
-
Python: luigi 배치 job 파이프라인 생성기컴퓨터/파이썬 2020. 11. 21. 22:02
Luigi by Spotify spotify/luigi Luigi is a Python module that helps you build complex pipelines of batch jobs. github.com 1. 소개 luigi[루이지]는 배치 job들의 파이프라인을 만들 수 있게 도와주는 라이브러리이다. 주목적은 오래 실행되는 배치 프로세스들을 처리하기 위함인데, 아파치 Hadoop처럼 데이터베이스에 데이터를 저장/추출하거나, 머신 러닝 알고리즘을 돌리거나, 이 배치 job은 아무거나 될 수 있다. 장점 파이썬이므로 어떤 작업이든 쉽게 만들 수 있다. 파이프라인을 거꾸로 돌기 때문에 태스크를 재실행하기보다, 실패한 테스크로부터 돌릴 수 있다. 아마존 ECS로 바로 작업할 수 있는 AWS 배치 ..
-
Python: LRU 캐시 만들어보기컴퓨터/파이썬 2020. 11. 16. 22:07
Least Recently Used 가장 오래 사용하지 않은 페이지 교체 알고리즘 Cache replacement policies - Wikipedia Page replacement algorithm. en.wikipedia.org 1. LRU 파이썬 functools.lru_cache 소스: @Github from functools import lru_cache @lru_cache(maxsize=32) def fibo(n): if n == 1: return 0 elif n == 2: return 1 else: return fibo(n - 1) + fibo(n - 2) 파이썬 실제 lru_cache는 이 글 구현된 버전보다 빠르다, (따로 linked class를 만들지도 않고, 다 함수 안에서 끝난다...