파이썬은 왜 멀티스레드를 잘 안 쓸까? GIL부터 FastAPI 비동기 처리까지
·
🍞 AI
시작하게 된 계기백엔드 개발을 하다 보면 "성능을 높이려면 병렬로 처리하면 되지 않을까?"라는 생각을 자연스럽게 하게 된다. 다른 언어라면 스레드를 여러 개 띄우는 게 첫 번째 선택지겠지만, 파이썬에서는 이야기가 조금 다르다. GIL(Global Interpreter Lock) 때문이다.이번 글에서는 GIL이 정확히 무엇이고 왜 멀티스레딩의 발목을 잡는지, 그리고 실무에서는 이를 어떻게 우회해서 병렬/동시 처리를 하는지 — 특히 FastAPI가 이 문제를 어떻게 다루는지까지 정리해본다.GIL이란 무엇인가GIL은 CPython(우리가 흔히 쓰는 파이썬 인터프리터)이 한 번에 하나의 스레드만 파이썬 바이트코드를 실행하도록 강제하는 락(lock)이다. 즉, 프로세스 안에 스레드를 아무리 여러 개 만들어도 실제..