본문 바로가기

Computer Science

(2)
Green Threads(그린 쓰레드)란 가끔 Python SQAlchemy를 쓰다 보면 greenlet 어쩌고 에러를 만나볼 수 있다. 처음 보는 단어길래 이게 뭐하는 건지 알아보니 그린 쓰레드라는 가짜 쓰레드라길래 호기심이 생겨 정리하게 되었다.Green Threads[처음 시작하는 FastAPI]에서 그린 쓰레드는 OS 커널에서 동작하는 게 아니라, 유저 스페이스(프로그램)에서 동작하는 쓰레드와 비슷한 것.이라고 소개하고 있다. 그리고 파이썬에서는 이를 파이썬 표준 함수를 런타임에서 변경하는 monkey-patching(몽키 패치) 방식으로 구현한다고 설명하고 있다.몽키 패치? 몽키 패치라는 말에 대해 위키백과에서는 "게릴라 패치"의 순화어라는 가설이 제시되고 있다. 아무튼, 몽키 패치는 런타임에서 코드의 동작을 변경하는 행위라는 의미를..
백엔드 프레임워크의 동작 방식 - 멀티 쓰레드 vs 이벤트 루프 이 포스트에서는 백엔드 프레임워크의 대표적인 동작 방식인 이벤트 루프 기반 백엔드와 멀티 쓰레딩 기반 백엔드에 대해 알아본다.멀티 쓰레딩 기반 백엔드멀티 쓰레딩 방법을 사용하는 백엔드 프레임워크는 클라이언트에서 요청이 들어올 때마다 요청을 처리하는 쓰레드를 생성하여 생성된 쓰레드가 요청을 처리하도록 한다.장점구현하기가 비교적 직관적이다. 그저 쓰레드 하나를 생성하도록 하면 되기 때문이다. 각 요청이 독립 쓰레드에서 처리되므로 코드 작성이 간단할 수 있다.단점Thread Management: 쓰레드를 생성할 때는 쓰레드 전용 스택 메모리(Stack), 컨텍스트를 관리하는 TCB(Thread Context Block), 쓰레드마다 독립적으로 유지해야 하는 데이터를 담는 TLS(Thread Local Stor..