일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Crawling
- css
- linux
- algorithm
- Kotlin
- python
- node.js
- mysql
- TypeScript
- mongoose
- Scheduling
- wireshark
- OOAD
- DATABASE
- postman
- S3
- Network
- AWS
- macos
- HTML
- Android
- MongoDB
- sequelize
- Express
- OS
- Util
- docker
- React
- ubuntu
- typeorm
- Today
- Total
목록
반응형
Python (33)
Seongwon Lim
서론 이번 글에서는 FastAPI의 Lifespan을 이용하여 이벤트를 관리하는 방법을 알아보고자 한다. 이 글에서 말하는 이벤트 핸들링은 FastAPI 서비스가 시작 또는 종료될 때 특정 함수를 호출하는 등의 행위를 말한다. 본론 먼저 Lifespan이 생기기 이전에 FastAPI는 on_event를 이용하여 이벤트를 관리했다. 예를 들어, FastAPI가 시작(종료)될 때 특정한 함수를 실행시키기 위해서는 다음과 같이 코드를 작성할 수 있었다. from fastapi import FastAPI app = FastAPI() @app.on_event("startup") async def startup_event(): print("service is started.") @app.on_event("shutd..
서론 이번 글에서는 파이썬에서 도커 컨테이너를 관리하는 방법에 대해서 알아본다. 라이브러리 설치 pip3 install docker # pip / pip3 적절히 설치 코드 예제1 - 실행중인 도커 컨테이너 목록 및 상태 출력 import docker def get_docker_container_status(): try: # Create Docker clients client = docker.from_env() # Import list of running containers containers = client.containers.list(all=True) # Return Container List and Status container_info = {} for container in containers: ..
서론 이번 글에서는 MacOS 운영체제에서 pyspark 설치 방법을 알아보고자 한다. 설치 방법 $ java -version pyspark를 사용하기 위해서는 자바가 설치되어 있어야 한다. 위 명령어를 입력했을 때 자바가 설치되지 않은 경우 자바를 먼저 설치한다. 자바 설치 방법은 아래 글을 참고하였다. https://phoenixnap.com/kb/install-java-macos How to Install Java on Mac | phoenixNAP KB Install Java on Mac by following this step-by-step tutorial. The article provides simple instructions for installing the JDK and the JRE. ..
서론 이번 글에서는 파이썬 코드를 백그라운드에서 실행하는 방법을 알아보고자 한다. Nohup 이란? 주로 리눅스(linux) 운영체제 계열에서 본인이 실행한 파이썬 모듈의 프로세스가 죽지 않고 백그라운드상에서 계속해서 돌아가게끔 구현하고자 할 때 많이 사용하며, 의미는 'No Hangup' 의 줄임말로 '무언가를 끊지 말라는 뜻'이다. 해당 글에서의 무언가는 파이썬 모듈이 돌아가고 있는 프로세스를 의미한다. 사용 방법 nano start.sh # 또는 vi start.sh nohup 명령어를 실행하기 위한 쉘스크립트 파일을 열고, 아래와 같이 명령어를 입력한다. nohup python3 [파이썬 파일 경로] & 예를 들어, 본인의 파이썬 파일 main.py 가 /home/user 아래에 존재한다면 noh..
서론 이번 글에서는 파이썬 내 라이브러리를 이용하여 복잡한 문자열을 처리할 수 있는 기능을 간단하게 구현해보고자 한다. ELK 스택(Elasticsearch + Logstash + Kibana)를 알고 있는 사람이라면 로그스태시의 Grok Parser 기능을 들어보거나 사용해본 사람들이 있을 것이다. Grok Parser는 로그스태시 내에서 사용되며, 복잡하게 구성된 로그들을 사용자가 정의한 정규 표현식에 맞추어서 키:값 형태로 추출해주는 기능을 제공한다. 이번에 다루는 Pygrok 라이브러리도 로그스태시의 Grok Parser 기능과 동일한 기능을 제공한다고 생각하면 좋을 것 같다. 설치하기 pip install pygrok 위 명령어를 이용하여 Pygrok을 설치한다. 예제 코드 text = 'gar..
서론 이번 글에서는 파이썬 라이브러리를 이용해서 네트워크 상에서 발생하는 패킷들을 수집 또는 스니핑하는 기능을 간단하게 구현해보고자 한다. 개발 환경 : Ubuntu 22.04 LTS Scapy 파이썬 Scapy는 네트워크 패킷을 전송,분석 및 스니핑 기능을 지원하는 라이브러리이다. 따라서 Scapy를 이용하면 다양한 프로토콜의 패킷을 위조하거나 해석할 수 있으며 또는 캡처하고, 요청 및 응답을 일치시키는 등의 작업을 수행할 수 있다. 스니핑(sniffing) : 직역하면 '냄새를 맡다' 라는 의미로, 네트워크 상에서의 의미는 자신이 아닌 다른 상대방(네트워크)들의 패킷 교환을 엿듣는 것을 일컫는다. 다시 말하면, 스니핑은 네트워크 상에서 발생하는 모든 패킷을 모니터링하고 캡처하는 것이라고 생각할 수 있..
서론 프로그래머스 문제를 풀다가 약수의 개수를 구하는 과정에서 시간초과가 발생한 적이 있었다. https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 약수의 개수를 구해야 하는 숫자가 크지 않다면 시간 제한 내에 문제를 해결할 수 있지만 그렇지 않은 경우 시간 초과에 걸릴 확률이 높아질 수 있다. 그래서 이번 글에서는 파이썬을 이용하여 약수의 개수를 구할 때 시간복잡도를 줄여 효율적으로 약수의 개수를 구하는 방법에 대해서 간단하게 알아보고자 한다. ..
서론 이번 글에서는 파이썬의 collections 라이브러리에 있는 deque를 이용하여 리스트를 회전하는 방법을 간단하게 알아보고자 한다. 알고리즘 문제를 풀다보면 배열을 회전시켜야 하는 문제들을 종종 볼 수 있는데 deque를 사용하면 간단하게 구현할 수 있다. deque란 무엇인가? 먼저 deque는 양쪽 끝에서 삽입과 삭제를 할 수 있는 리스트 종류의 컨테이너이다. 파이썬에서 리스트를 생성하면 삽입과 삭제가 오른쪽 맨 끝에서 이루어지는 반면에 deque는 맨 앞에도 데이터를 삽입, 삭제할 수 있다는 장점이 있다. deque 사용 방법 먼저 배열 회전을 구현하기 전에 간단하게 deque 자료형 사용 방법을 알아보자. from collections import deque nums = [1, 2, 3,..
서론 이번 글에서는 파이썬을 이용하여 영어로 구성된 문자열을 소문자, 대문자로 바꾸는 방법, 맨 앞의 문자만 대문자로, 나머지는 소문자로 바꾸는 방법, 마지막으로 각 단어의 맨 앞 글자는 대문자로, 나머지는 소문자로 바꾸는 방법에 대해서 간단하게 알아보고자 한다. 글 제목에서 언급했듯이 upper(), lower(), capitalize(), title() 메서드를 사용하여 구현할 수 있다. 영어 문자열을 대문자로 변환하기 영어 문자를 대문자로 변환하기 위해서는 파이썬의 upper() 메서드를 이용하여 구현할 수 있다. st = "hello, world!" print(st.upper()) # HELLO, WORLD! st = "안녕, World!" print(st.upper()) # 안녕, WORLD! ..
서론 파이썬 언어로 프로그래밍을 할 때 흔히 사용하는 정렬 메소드는 sort(), sorted() 등이 존재한다. 보통은 [1,3,2,5,4] 처럼 집합 안에 단일 숫자 혹은 문자가 들어올 때의 정렬을 하는 경우가 많지만, 가끔 첫번째 요소를 기준으로 정렬을 한 뒤, 첫번째 요소가 같으면 두번째 요소를 다시 정렬하는 경우를 요구하기도 한다. 예를 들어 리스트 내 데이터가 튜플로 구성된 경우를 생각해보자. [(2,1), (4,2), (1,2), (1,3)] 이러한 경우, 튜플의 첫번째 요소를 기준으로 오름차순을 한 뒤, 첫번째 요소의 값이 같다면 두번째 요소를 기준으로 내림차순을 수행하는 로직을 요구할 수 있다. 그래서 이번 글에서는 해당 메소드들을 이용하여 다중 조건으로 정렬을 하는 방법을 간단하게 알아..