본문 바로가기

Python14

DataFrame vs LazyFrame 차이점에 대해 알아보자 (Polars) 📝 개요데이터를 다루다 보면, “지금 당장 결과를 보고 싶은 경우”와 “대량의 데이터를 최적화해 한 번에 처리하고 싶은 경우”가 있습니다. 폴라스(Polars)는 이런 두 가지 니즈를 만족시키기 위해 DataFrame(Eager) 과 LazyFrame(Lazy) 이라는 두 가지 실행 방식을 제공합니다.DataFrame(Eager): 한 줄 한 줄 실행될 때마다 바로 결과를 확인할 수 있는 방식. 대화형 분석, 빠른 실험에 딱 좋습니다.LazyFrame(Lazy): 실행 계획을 쌓아두었다가, 최적화 과정을 거쳐 한 번에 실행합니다. 대규모 데이터나 복잡한 파이프라인 처리에 강합니다.이 글에서는 두 모델의 철학과 차이, 그리고 실제 성능 차이를 예제로 보여드리며, 어떤 상황에 어떤 방식을 쓰면 좋은지 이야.. 2025. 8. 14.
Python에서 멀티스레드와 비동기의 차이점을 이해해보기 📌 들어가며"동시에 여러 작업을 처리하고 싶을 때, 뭘 써야 하지?"Python에서는 대표적으로 멀티스레딩과 비동기 프로그래밍(asyncio) 두 가지 방식이 있다. 이름만 봐도 뭔가 복잡하고 어려워 보이지만,사실 이 두 개념은 **‘일꾼(Thread)’**과 **‘일 처리 방식(Async)’**이라는 관점으로 보면 쉽게 이해할 수 있다.이 글에서는 다음과 같은 내용을 다룬다:멀티스레드와 비동기의 차이를 비유로 이해어떤 상황에 어떤 방식을 쓰면 좋은지실전 예제와 함께 비교(🔗 참고: 비동기 프로그래밍 정리글, 스레드 정리글) 🛠️ 멀티스레드 – 일꾼을 여러 명 고용하는 방식멀티스레드는 말 그대로 작업자를 여러 명(thread)을 고용해서 동시에 일을 처리하는 방식이다.예를 들어, 여러분이 벽돌을 나.. 2025. 7. 31.
Python Thread 프로그래밍 이란. 🔹 들어가며.Python에서의 쓰레드 프로그래밍은 I/O 바운드 작업을 병렬로 처리할 때 매우 유용합니다. 특히 네트워크 요청, 파일 처리, 타이머 등 블로킹 작업에서 효과를 발휘합니다. 이 글에서는 Python의 쓰레드 프로그래밍에 대해 기본 개념부터 실무 예제, 그리고 주의해야 할 점까지 폭넓게 다루어 보겠습니다.🔹 쓰레드란 무엇인가?**쓰레드(Thread)**는 하나의 프로세스 내에서 실행되는 독립적인 흐름을 의미합니다. 하나의 프로그램(프로세스) 안에서 여러 작업을 동시에 수행하고 싶을 때 쓰레드를 사용합니다.프로세스: 운영체제에서 실행 중인 프로그램 단위. 각각 독립된 메모리 공간을 가짐.쓰레드: 프로세스 내부에서 실행되는 작은 단위. 메모리(힙, 전역 변수)를 공유함.Python에서는 th.. 2025. 7. 19.
비동기 프로그래밍에 대하여 📌 1. 비동기 프로그래밍이란?대부분의 백엔드 개발 환경에서는 웹 요청, 파일 입출력, DB 쿼리 등 입출력(I/O) 대기 시간이 긴 작업들이 많습니다. 이런 상황에서 쓰레드를 무작정 늘리는 방식은 비용도 크고 한계가 있습니다.Python의 비동기 프로그래밍은 async/await 문법을 기반으로, 동시성(concurrency) 을 효율적으로 처리해줍니다. ✅ 동기 vs 비동기 방식설명예시동기순차적으로 처리DB 조회 → 응답 대기 → 다음 요청비동기대기 시간 중 다른 작업 수행DB 요청 중 파일 읽기 진행 ✅ 기본 개념 정리용어설명Coroutineasync def로 정의된 함수. 호출 시 실행되지 않고, 코루틴 객체를 반환함await코루틴이나 awaitable 객체의 실행을 일시 중단하고, 다른 작업 .. 2025. 6. 24.
UV(Ultraviolet)로 빠르게 효율적으로 파이썬 패키지 관리하기 🚀 1. 들어가며Python을 활용한 개발 환경에서 패키지 관리자의 선택은 프로젝트의 효율성에 큰 영향을 줍니다. 본 글에서는 최근 많은 주목을 받고 있는 UV(Ultraviolet)를 소개하고, 기존의 패키지 관리자들과 어떤 차별점이 있는지 알아봅니다. 📚 2. Python 패키지 관리 도구의 이해pipPython의 기본 패키지 관리자간편한 사용법과 광범위한 지원의존성 충돌 관리가 다소 불편conda데이터 과학 환경에서 널리 사용Python뿐 아니라 다른 언어 및 시스템 종속성 관리 가능비교적 느린 성능 및 큰 용량 요구poetry 및 pipenv프로젝트 관리 중심의 패키지 관리자가상환경과 패키지 관리를 통합 ✨ 3. UV(Ultraviolet)란?UV는 Rust 언어를 기반으로 만들어진 최신 Py.. 2025. 5. 14.
[Python] @contextmanager 데코레이터 에 대해서 ❓ @contextmanager란?Python의 @contextmanager 데코레이터는 컨텍스트 매니저(Context Manager) 를 손쉽게 만들 수 있도록 도와주는 도구이다. 컨텍스트 매니저는 주로 리소스(파일, 네트워크 연결, 락 등)를 열고 닫는 등의 정리(cleanup) 작업을 자동으로 처리해줘서, 코드의 안정성과 가독성을 높여줍니다. with 문과 함께 사용되어, 리소스를 열고 사용한 뒤 자동으로 정리(종료)해주는 구조를 만들어줍니다.  🤔 왜 사용하나요?프로그래밍을 하다 보면 자원을 열고 나서 반드시 닫아줘야 하는 경우가 많죠.예를 들면:파일을 열면 반드시 닫아야 하고,데이터베이스 연결도 끊어줘야 하며,락(lock)을 잡았다면 해제를 해줘야 해요.이걸 매번 try-finally로 쓰면 .. 2025. 4. 1.