본문 바로가기

전체 글28

비동기 프로그래밍에 대하여 📌 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.
Airflow DAG에서 SQL 스키마 관리 쉽게 하기 ( 중앙집중화 버전 ) 📌 개요Airflow에서 데이터베이스를 다루다 보면 테이블명이나 컬럼명이 변경될 때마다 여러 파일을 수정해야 해서 번거로울 수 있습니다. 이 글에서는 SQL 스키마를 Python 코드 내 한곳에 집중 관리하여 유지보수를 간편하게 만드는 방법을 소개합니다.🔍 이 방법을 쓰는 이유✅ 유지보수 간편화: 변경이 필요하면 한 파일만 수정하면 끝!✅ 코드 가독성 향상: SQL 쿼리와 로직이 명확하게 분리되어 관리✅ 기존 Airflow Hook 활용: MySqlHook 등을 그대로 사용할 수 있어 변경 부담이 적음 💻 구현 예제📄 db_config.py (중앙 집중식 SQL 관리)class DBConfig: TABLE_ALERT_HISTORY = "alert_history" COL_EXECUTION.. 2025. 4. 21.
[Python] @contextmanager 데코레이터 에 대해서 ❓ @contextmanager란?Python의 @contextmanager 데코레이터는 컨텍스트 매니저(Context Manager) 를 손쉽게 만들 수 있도록 도와주는 도구이다. 컨텍스트 매니저는 주로 리소스(파일, 네트워크 연결, 락 등)를 열고 닫는 등의 정리(cleanup) 작업을 자동으로 처리해줘서, 코드의 안정성과 가독성을 높여줍니다. with 문과 함께 사용되어, 리소스를 열고 사용한 뒤 자동으로 정리(종료)해주는 구조를 만들어줍니다.  🤔 왜 사용하나요?프로그래밍을 하다 보면 자원을 열고 나서 반드시 닫아줘야 하는 경우가 많죠.예를 들면:파일을 열면 반드시 닫아야 하고,데이터베이스 연결도 끊어줘야 하며,락(lock)을 잡았다면 해제를 해줘야 해요.이걸 매번 try-finally로 쓰면 .. 2025. 4. 1.
[CentOS7] Yum 오류 해결법(Could not resolve host: mirrorlist.centos.org) CentOS 7 환경에서 yum 명령어 사용 시 다음과 같은 오류가 발생할 때가 있습니다.Could not resolve host: mirrorlist.centos.org; Unknown errorCannot find a valid baseurl for repo: extras/7Server/x86_64 이 문제는 특히 CentOS 7.6 이하의 오래된 버전에서 자주 나타납니다. 원인과 해결방법을 알려드립니다.! 🔍 원인 분석DNS 문제: 도메인 주소(mirrorlist.centos.org)를 해석하지 못할 경우 발생합니다.EOL(지원종료): 오래된 CentOS 버전은 공식 리포지토리에서 패키지를 더 이상 제공하지 않기 때문입니다.특히 CentOS 7.6은 지원이 종료되어 기본 리포지토리를 더 이상 사용.. 2025. 3. 25.
[Prometheus] NiFi 연동 시 non-compliant scrape target 오류 해결 방법 🔍 오류 발생 원인Prometheus에서 특정 타겟을 스크래핑할 때, 다음과 같은 오류가 발생할 수 있습니다. Error scraping target: non-compliant scrape target sending blank Content-Type and no fallback_scrape_protocol specified for target 이 오류는 Prometheus가 대상 엔드포인트(NiFi, Spring Actuator, 기타 메트릭 제공 서비스)로부터 데이터를 가져올 때, Content-Type이 올바르게 설정되지 않았거나, 예상한 프로토콜 형식이 일치하지 않을 때 발생합니다. 특히 Prometheus 2.43 버전 이상에서는 Content-Type 검증이 더욱 엄격해지면서 이전에는 문제없이.. 2025. 3. 19.