본문 바로가기
반응형

Python14

Python multiprocessing 모듈: 특징, 장점, 및 사용 방법 정리 Python multiprocessing 모듈: 특징, 장점, 및 사용 방법 정리Python의 multiprocessing 모듈은 다중 프로세스를 활용하여 CPU 성능을 극대화하고, 병렬 처리를 통해 작업 속도를 높이는 데 사용됩니다. 특히, Python의 GIL(Global Interpreter Lock) 제한을 우회하여 멀티코어 CPU에서 효율적인 병렬 처리를 가능하게 합니다.특징병렬 처리 지원:여러 프로세스를 생성하여 작업을 병렬로 실행할 수 있습니다.GIL의 영향을 받지 않으므로 CPU 바운드 작업에 적합합니다.독립적인 프로세스 메모리:각 프로세스는 독립적인 메모리 공간을 가지므로, 메모리 충돌이나 동기화 문제를 최소화합니다.다양한 통신 메커니즘:프로세스 간 데이터를 교환하기 위한 Queue, P.. 2024. 12. 10.
QTreeView 트리구조 생성 및 사용방법(+이벤트 처리) QTreeView 트리구조 생성 및 사용방법(+이벤트 처리)트리 구조는 계층적 데이터를 시각적으로 표현하는 데 유용한 방법입니다. PySide6의 QTreeView는 이러한 트리 구조 데이터를 효과적으로 관리하고 표시할 수 있도록 돕는 도구입니다. 이 글에서는 PySide6의 QTreeView를 사용하여 트리 구조 데이터를 어떻게 관리하고 표시할 수 있는지에 대해 설명합니다. 기본적인 QTreeView의 특징과 주요 기능, 그리고 이를 활용한 트리 구조 데이터를 다루는 방법을 실용적인 예제와 함께 소개합니다. 또한 QTreeView에서 사용할 수 있는 이벤트 처리 방법에 대해 자세히 다룹니다. 1. QTreeView의 특징QTreeView는 계층적 데이터를 시각적으로 표현할 수 있는 위젯으로, 트리 구조.. 2024. 9. 10.
exec()에서 사용자 입력(악성코드) 동작 방지방 exec()에서 사용자 입력(악성코드) 동작 방지방법exec()는 문자열로 작성된 파이썬 코드 블록을 실행하는 매우 강력한 함수입니다. 그러나 외부 입력을 검증 없이 exec()로 처리하면 악의적인 코드를 실행할 수 있는 위험이 있습니다. 특히, import os; os.system('rm -rf /')와 같은 명령어가 실행되면 시스템에 심각한 피해를 줄 수 있습니다. 따라서 exec()를 사용할 때는 반드시 안전한 방법으로 사용자 입력을 처리해야 합니다.  1. 보안 문제 이해exec() 함수는 문자열로 전달된 모든 파이썬 구문을 실행할 수 있습니다. 예를 들어, 사용자로부터 입력받은 문자열이 다음과 같은 악의적인 코드를 포함할 수 있습니다. 예시에서 exec() 함수는 사용자 입력을 그대로 실행하고,.. 2024. 9. 9.
eval() 에서 악의적인 코드 실행 방지하기 : 보안 위험 방지 eval() 에서 악의적인 코드 실행 방지하기 : 보안 위험 방지eval() 함수는 문자열로 표현된 파이썬 표현식을 실행하고 그 결과를 반환하는 강력한 함수이지만, 잘못 사용하면 심각한 보안 문제를 일으킬 수 있습니다. 특히 외부로부터 입력받은 데이터를 검증 없이 eval()에 전달하면 악의적인 코드가 실행될 수 있습니다. 이러한 보안 위험을 방어하기 위해 여러 가지 방법을 사용할 수 있습니다. 이번 포스팅에서는 eval()을 안전하게 사용하는 방법에 대해서 정리합니다.1. 보안 위험 이해하기먼저, eval() 함수의 보안 위험을 이해하는 것이 중요합니다. 코드에서 user_input에 악의적인 코드가 포함되어 있으며, 이를 eval()로 실행하면 시스템 전체를 삭제하는 명령어가 실행될 수 있습니다. 이.. 2024. 9. 5.
문자열을 파이썬 코드로 해석해서 실행하는 함수 : eval(), exec() 비교 문자열을 파이썬 코드로 해석해서 실행하는 함수 : eval(), exec() 비교문자열을 파이썬 코드로 해석해서 실행하는 함수인 eval()과 exec()는 파이썬의 동적 특성을 극대화하는 강력한 도구입니다. 이 두 함수는 입력받은 문자열을 코드로 변환해 실행하는 기능을 제공하며, 특정 상황에서 유연하고 강력한 기능을 발휘할 수 있습니다. eval()은 주로 단일 표현식을 평가하고 그 결과를 반환하는 데 사용되는 반면, exec()는 전체 코드 블록을 실행할 수 있습니다. 하지만 이와 같은 강력한 기능에는 보안상의 취약점과 성능 저하 문제를 동반할 수 있어, 무분별한 사용은 위험을 초래할 수 있습니다. 이 글에서는 eval()과 exec()의 주요 특징에 대해 비교했습니다. Python의  eval() .. 2024. 9. 4.
파이썬 3.12의 "Deprecation Warning" 적용 및 변경사항 파이썬 3.12의 "Deprecation Warning" 적용 및 변경사항파이썬 3.12의 "Deprecation Warnings by Default"는 파이썬 언어의 사용자들에게 오래된 기능들이 더 이상 권장되지 않음을 알리기 위해, 기본적으로 이러한 기능을 사용할 때 경고 메시지를 출력하도록 하는 중요한 변경 사항입니다. 이 기능은 코드의 장기적인 유지 보수를 돕고, 향후 버전에서 사라질 기능에 대한 대비를 할 수 있도록 돕습니다. 이는 향후 파이썬의 진화에 따라 코드베이스가 끊임없이 최신 상태를 유지하도록 돕는 중요한 도구입니다. 이 기능을 통해 개발자는 코드의 품질을 높이고, 예상치 못한 문제를 방지할 수 있습니다.Deprecation Warning이란?Deprecation Warning은 특정 .. 2024. 8. 21.
반응형