1. 테스트 데이터 생성가상의 주식 데이터프레임을 생성한다. 날짜를 인덱스로 설정하고 종가(`Close`)와 거래량(`Volume`) 데이터를 생성.import pandas as pdimport numpy as npdata = { 'Date': pd.date_range(start='2025-01-01', periods=6), 'Close': [1000, 1100, 1050, 1200, 1150, 1300], 'Volume': [100, 150, 120, 200, 180, 250]}df = pd.DataFrame(data)df.set_index('Date', inplace=True)df# Close Volume# Date # 2025-01-01 1000 100# 2025-..
Programming/Python
시스템 운영 및 모니터링 도구를 개발할 때, 특정 사용자가 실행한 프로세스가 어떤 외부 IP와 통신 중인지 확인해야 하는 경우가 있다. 이 글에서는 psutil을 사용하여 특정 프로세스를 필터링하고, 현재 TCP 연결이 수립(ESTABLISHED)된 세션 정보만 추출하는 방법을 알아본다. 1. psutil 개요psutil (Python System and Process Utilities)은 실행 중인 프로세스와 시스템 활용률(CPU, 메모리, 디스크, 네트워크 등) 정보를 수집하는 크로스 플랫폼 라이브러리다. 시스템 모니터링, 프로파일링, 프로세스 관리 도구 개발에 주로 사용된다.설치: pip install psutil 2. 코드 예시다음은 사용자(user), 프로세스명(process_name), 감시 ..
대용량 데이터 처리나 다수의 네트워크 요청 시, 순차적인 작업 방식은 성능 저하의 원인이 될 수 있다. 이때 병렬 처리(Parallel Processing)를 적용하면 성능을 크게 향상시킬 수 있다. 파이썬의 표준 라이브러리인 concurrent.futures는 병렬 처리를 쉽고 직관적으로 작성하도록 돕는다.본 글에서는 concurrent.futures를 이용해 순차 처리와 병렬 처리의 속도를 비교하고, ThreadPoolExecutor와 ProcessPoolExecutor의 차이점, 그리고 GIL(Global Interpreter Lock)의 개념과 한계에 대해 설명한다. 테스트 시나리오 설정병렬 처리의 효과를 확인하기 위해 의도적으로 시간이 소요되는 두 가지 유형의 작업을 가정한다.I/O-bound ..
json을 parquet로 변환할 때 PyArrow, Pandas, PySpark를 사용해서 성능을 비교해본다.PySpark는 단일 노드 로컬 환경에서 사용하기에 적합하지 않지만 테스트를 위해 사용해봤다. 1. 테스트 데이터 생성 (100MB JSON)json데이터 예시{"timestamp": "2025-08-14T14:44:49.540932", "user_id": "2d0e76f6-953f-4cb5-98ba-abc592f7fc31", "event_type": "add_to_cart", "ip_address": "71.75.115.128", "product_id": "E", "session_duration": null, "details": {"referrer": "direct", "browser": "S..