- [ 언어·프레임워크/Python ][Python] 병행성(Concurrency)과 병렬성(Parallelism), 그리고 GIL에 대한 오해2025-06-11 14:26:52파이썬 병행성(Concurrency)과 병렬성(Parallelism), 그리고 GIL에 대한 오해파이썬 개발을 하다 보면 '병행성'과 '병렬성'이라는 용어를 자주 접하게 된다. 특히 웹 스크래핑이나 네트워크 통신처럼 I/O 작업이 많은 경우, 이 두 가지 개념을 이해하는 것이 중요하다. 파이썬의 GIL(Global Interpreter Lock) 때문에 혼란을 겪는 경우도 많지만, 이번 글에서는 간단한 예제 코드를 통해 이 개념들을 명확히 이해하고자 한다.1. 병행성과 병렬성의 차이점병행성(Concurrency)과 병렬성(Parallelism)은 비슷해 보이지만 중요한 차이가 있다.병행성: 여러 작업을 동시에 "진행하는 것처럼 보이게" 하는 개념이다. 단일 코어에서도 여러 작업을 번갈아 가며 처리하여 동..
- [ 언어·프레임워크/Python ][Python] concurrent.futures: GIL, 동시성, 병렬성 완전 정복2025-05-27 10:28:51Python concurrent.futures: GIL, 동시성, 병렬성 완전 정복Python에서 멀티스레딩과 멀티프로세싱을 다룰 때 가장 혼란스러운 개념 중 하나가 바로 GIL, 동시성, 병렬성이다. 특히 concurrent.futures 모듈의 ThreadPoolExecutor와 ProcessPoolExecutor를 언제 사용해야 하는지 판단하기 어려워하는 개발자들이 많다. 이 글에서는 이러한 개념들을 명확히 정리하고, 실무에서 어떻게 적용해야 하는지 알아보겠다.GIL(Global Interpreter Lock)이란 무엇인가GIL은 Python 인터프리터의 핵심 메커니즘 중 하나로, 한 번에 하나의 스레드만 Python 바이트코드를 실행할 수 있도록 제한하는 뮤텍스이다. 이는 Python의 메모리 관..