Python Schedule 라이브러리 Python Schedule라이브러리에 대한 실험 결과다. 자세한 사용법은 아래 docs에 자세하게 나와있다. schedule — schedule 1.1.0 documentation schedule.readthedocs.io 1. 스케줄러 application 레이어에서의 스케줄러란, 특정 작업을 원하는 주기로 실행시키기 위한 툴이다. 스케줄러의 스케줄링에는 크게 두종류가 있다. 1. 원하는 주기로 작업 실행 작업 종료후, 원하는 시간만큼 기다렸다가 다음 작업을 실행하는 경우다. ex) 5초 주기로 실행 2. 원하는 시간에 작업 실행 특정 시간에 작업을 실행하는 경우다 ex) 매 정각에 실행 (결국 1시간 주기로 실행) 이 두가지 스케줄링 방법에 대해 스케줄러가 어떻게 작업을 배치하는지에 대해 알아보는 .. 더보기 OpenTSDB TCP Command OpenTSDB에 TCP로 명령을 보내는도중 발생한 문제다. 1. telnet 으로 TCP Command 전송 telnet 을 통해 TSDB 서버에 다이렉트로 TCP Command를 날렸다. put {Metric} {timestamp} {value} {tags} 결과는 당연히 값이 잘 들어간다. 2. Python에서 Socket 통신 python에서 같은 명령으로 값을 넣어보았다. import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((hostname, port)) sock.send('put {Metric} {timestamp} {value} {tags}'.encode()) sock.close() 하지만 값이.. 더보기 파이썬 asyncio 이 포스팅은 파이썬의 비동기 라이브러리인 asyncio에 대한 전반적인 설명과, 간단한 사용법을 다룬다. asyncio — Asynchronous I/O — Python 3.10.7 documentation asyncio — Asynchronous I/O asyncio is a library to write concurrent code using the async/await syntax. asyncio is used as a foundation for multiple Python asynchronous frameworks that provide high-performance network and web-servers, database connection docs.python.org 1. 비동기 프로그래밍.. 더보기 HTTP2, Protocol Buffer, gRPC 이번 포스팅에서는 gRPC와 그와 관련된 HTTP2, Protocol Buffer 프로토콜 그리고 파이썬에서 gRPC의 사용에 대해 다룬다. 1. Terminology gRPC는 google에서 개발한 RPC 프로토콜로써, 구글의 직렬화 기술인 프로토콜 버퍼를 사용하며 HTTP2 프로토콜 위에서 동작한다. 이를 위해 우선 프로토콜 버퍼와, http2에 대해 대략적으로 설명한다. 1.1 프로토콜 버퍼 Protocol Buffers | Google Developers Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data. developers.google.com 프로.. 더보기 Python Thread 파이썬의 스레드에 대해 다루는 글이다. 스레드란, 프로세스내 작업의 단위이다. 프로세스는 하나 이상의 스레드를 가지고 있으며, 스레드 끼리는 프로세스의 힙공간을 공유하지만, 각 스레드별 스택을 가지고 있다. 이 포스팅은 전반적인 스레드에 대한 포스팅이 아닌 파이썬에서 스레드가 어떠한지와, threading 모듈에 관한 포스팅이다. 파이썬의 스레드 파이썬에서 스레드는 GIL이라는 정책 때문에, 동시에 두개 이상의 스레드가 병렬로 실행될 수 없다. 개발자는 이로인해 파이썬에서 제약을 받게된다. 그렇다면 GIL이 있으므로 파이썬 자체는 thread-safe하다고 볼 수 있는가? 불행히도 아니다. atomic 연산과 thread-safe 우선 thread-safe에 대해 알기전 연산의 atomic을 우선 알아야.. 더보기 ssh프로토콜과, 파이썬 paramiko 대화형 쉘 ssh 터미널을 개발하며 공부하게된 ssh프로토콜에 관련한 기본적인 내용과, paramiko 모듈의 ssh 인터렉티브 쉘을 얻을 수 있는 invoke_shell()에 대한 팁이다. (다시 삽질하지 않으려고 하는 기록이다) 쉘 입력 출력에 대해 ssh를 사용하기 전 쉘이 어떻게 사용자의 입력을 받아들이고, 보여주는지에 대해 이해햐아 한다. 쉘은 사용자가 커널을 사용하기 위한 인터페이스다. 사용자는 엔터(\r)를 통해 쉘에 명령을 입력하게 된다. 좀 더 자세한 이해를 위해 사용자가 쉘에 ls명령을 입력하여 해당 명령의 결과를 표준 출력(터미널창, 모니터)로 받는 과정을 알아보자. 사용자는 표준 입력(키보드)를 통해 'l', 's', '\r(CR, 엔터)'라는 세가지 입력을 수행해야 한다. (명령을 한번에 복.. 더보기 Python paramiko 파이썬으로 ssh 프로토콜을 사용할 수 있는 paramiko 라이브러리에 대한 간단한 사용 예제 크게 단일 명령을 전송하는 예제와, 당연히 설치는 pip로 가능하다. pip install paramiko pip3 install paramiko 자세한 설명은 아래 Docs에 나와있다. 자료 Welcome to Paramiko’s documentation! — Paramiko documentation Welcome to Paramiko’s documentation! This site covers Paramiko’s usage & API documentation. For basic info on what Paramiko is, including its public changelog & how the proje.. 더보기 파이썬 매직 메소드 파이썬의 클래스에서 사용하기 위한 특수한 메소드다. 매직 메소드라고 부른다. 이러한 매직 메소드들은 이미 정해진 메소드를 오버로딩해 클래스만의 특별한 기능으로 사용할 수 있다. 매직 메소드의 특징으론 앞뒤에 언더바 두개를 가지고 있다. ex) __add__ __init__ 클래스가 생성될때 초기화를 진행하게 되는 메소드다. 클래스를 생성할때 사용한 파라미터를 메소드의 파라미터로 전달받게 된다. class Person: def __init__(self, name, age): self.name = name self.age = age def who(self): print(f"이름 : {self.name}, 나이 : {self.age}") kim = Person("kim", 25) kim.who() 객체 생성시.. 더보기 Python Logging logging 모듈 사용법 logging — Logging facility for Python — Python 3.10.5 documentation logging — Logging facility for Python Source code: Lib/logging/__init__.py This module defines functions and classes which implement a flexible event logging system for applications and libraries. The key benefit of having the logging API provided by a s docs.python.org logging 기본 사용법 Example #logging_example1.py .. 더보기 Python Flask flask란 flask는 파이썬의 가벼운 웹 프레임 워크로써, 주로 간단한 API를 만드는데 사용한다. 사용 방법 아래 예제 소스는 로컬 api 서버를 열어 “hello world!”를 리턴하는 예제다. from flask import Flask app = Flask(__name__) @app.route('/test') def test(): return "hello world!" app.run() flask 객체를 생성하여, @route 어노테이션을 사용하여 request를 받을 url(/test)을 설정하고 request를 받아 “hello world!”를 response해주는 예제로 실행 결과는 다음과 같다. 가장 간단한 사용법이다. template 자주 사용하는 HTTP GET, POST 요청 예시.. 더보기 이전 1 2 다음 목록 더보기