전체 글

잡다한거 정리해서 포스팅하는 블로그
이 글은 이전 글인 “파이썬의 숨겨진 심장박동, 레퍼런스 카운팅”을 보고오시면 더 쉽게 이해하실 수 있습니다. Global Interpreter Lock (GIL)의 역할 Global Interpreter Lock(GIL)은 파이썬 객체에 대한 접근을 보호하는 뮤텍스로, 여러 스레드가 동시에 파이썬 바이트코드를 실행하는 것을 방지합니다. GIL은 경쟁 상태를 방지하고 스레드 안전성을 보장합니다. 위의 글의 내용은 파이썬 위키에서 발췌한 내용입니다. 이는 파이썬 멀티 스레드 환경에서는 동일한 메모리 공간(힙 메모리)를 통해 자원을 공유하기 때문에 각각의 스레드가 이러한 자원을 동시에 사용하고자 할 때 경쟁 상태(Race Condition)를 예방하고 스레드의 안정성을 보장하기 위해 고안된 파이썬 만의 기법..
개요 파이썬은 편리성과 강력함으로 많은 개발자에게 사랑받는 프로그래밍 언어입니다. 파이썬에서 편리함을 주는 기능들은 많이 있겠지만 자동적으로 진행되는 Garbage Collection(GC)도 하나의 큰 요소로 작용합니다. 파이썬의 가비지 컬렉션(GC) 시스템은 자동으로 메모리 관리를 수행함으로써, 개발자가 프로그램의 복잡성에 신경 쓰지 않고 더 중요한 알고리즘 구현과 최적화에 집중할 수 있도록 도와줍니다. 이는 특히 메모리 관리가 필수적인 큰 프로젝트나 서비스에서 더욱 큰 장점으로 작용합니다. 해당 글은 이전 글인 ”파이썬은 모든 것이 객체?”를 보고 오시면 이해가 더 쉽습니다. 파이썬의 가비지 컬렉션 방식 레퍼런스 카운팅(Reference Counting) 마크-앤-스윕(Mark-and-Sweep) ..
개요 Fastapi에서 async를 통해 비동기 함수를 어떻게 처리하는지 동작 방식에 대해서 학습하기 위해 작성한 글이며 코드를 통해 여러가지 상황에 대해서 실험을 진행한 내용에 대해서 설명한 글입니다. FastAPI의 비동기 처리 FastAPI에서는 동기함수들을 비동기적으로 실행할 수 있게 해준다. 동기 함수를 이벤트 루프에 등록할시에는 이벤트 루프는 단일 스레드로 작동하기 때문에 동기 함수는 이벤트 루프의 메인 스레드를 차단하고, 다음 작업을 진행하지 못하는 상황이 생긴다. 따라서, 이벤트루프를 차단하지 않고 백그라운드에서 동기 함수를 실행할 수 있게 하기 위하여 분기처리를 진행합니다. 그래서 이벤트 루프는 다른 비동기 작업을 계속 진행할 수 있습니다. run_endpoint_function이라는 함..
※"이것이 코딩 테스트다"의 저자인 나동빈 님의 유튜브 강의를 보고 학습을 위해 정리한 글입니다. 예제 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. 예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 과정을 한 번 수행하면 N은 16이 된다. 이후에 2번의 과정을 두 번 수행하면 N은 1이 된다. 결과적으로 이경우 전체과정을 실행한 횟수는 3이된다. 이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야하는 최소 횟수를 구하는 프로그램을 작성하시오 입력조건 - 첫째줄에 N(2
hu-nie
내일을 위해