Python 27

주말엔 뭐 볼까!? : '이주의 박스 오피스 기상도' 기획

영진위 박스오피스자료를 바탕으로 기상케스팅처럼 동영상을 일주일에 한번씩 주기적으로 캐스팅하는 동영상을 ai로 자동으로 생성하도록 하는 자동화를 구현하려면? 사용자의 쿼리는 한국영화진흥위원회(KOFIC, 이하 영진위)의 박스오피스 데이터를 기반으로, "기상 캐스팅" 스타일(예: 날씨 예보처럼 재미있고 시각적으로 요약하는 형식)의 동영상을 AI를 활용해 주기적으로(일주일에 한 번) 자동 생성하는 시스템을 구축하는 것입니다. 이는 데이터 수집, 분석, 콘텐츠 생성, 동영상 제작, 자동화 스케줄링의 단계로 나눌 수 있습니다.이 구현은 Python을 기반으로 하며, 오픈소스 라이브러리와 클라우드 서비스를 활용합니다. 전체 프로세스는 서버나 클라우드(예: AWS, Google Cloud)에서 실행되도록 설계합니다..

Playwright를 활용한 네이버 증권 크롤링 예제

네이버 증권(finance.naver.com)은 주식 시세, 뉴스, 배당 정보 등 다양한 금융 데이터를 제공하는 플랫폼으로, JavaScript로 동적 렌더링되는 페이지가 많아 Playwright와 같은 브라우저 자동화 도구가 크롤링에 적합합니다. Playwright는 동적 웹페이지 처리, 자동 대기, 크로스 브라우저 지원 등으로 네이버 증권의 데이터를 효과적으로 수집할 수 있습니다. 아래는 Playwright를 사용한 네이버 증권 크롤링 예제를 Python으로 작성한 내용입니다.주의: 네이버 증권 크롤링 시 robots.txt와 이용 약관을 확인하고, 과도한 요청으로 서버에 부담을 주지 않도록 적절한 딜레이를 설정하세요. 상업적 사용은 약관 위반이 될 수 있으니 개인 학습 목적으로만 사용하세요.설치Pl..

Playwright: 현대적인 웹 테스트 자동화의 강자

소개Playwright는 Microsoft에서 개발한 오픈소스 웹 테스트 자동화 도구로, Chromium, Firefox, WebKit 등 주요 브라우저 엔진을 지원하며 신뢰성 높은 엔드투엔드(E2E) 테스트를 제공합니다. Puppeteer의 한계를 보완하며, 크로스 브라우저 지원, 자동 대기, 네트워크 모킹, 스크린샷 및 비디오 캡처 등 강력한 기능을 자랑합니다. Node.js뿐만 아니라 Python, Java, C#도 지원해 다양한 개발 환경에 적합합니다. 빠른 실행 속도와 직관적인 API로 초보자부터 전문가까지 모두에게 매력적인 선택지입니다.Playwright의 주요 특징크로스 브라우저 지원: Chrome, Firefox, Safari(WebKit)를 단일 API로 테스트 가능.자동 대기: 요소가 ..

국가별 월별 기온 데이터를 FastAPI로 백엔드 구축 및 Dash로 테이블 출력하기

소개안녕하세요! 오늘은 Python을 활용해 국가별 월별 기온 데이터를 동적으로 처리하고 웹 기반 GUI로 표시하는 방법을 다뤄보겠습니다. 이전에 Flask를 사용한 예제를 FastAPI로 업그레이드하며, Dash를 통해 상호 인터랙티브한 테이블을 구현합니다. FastAPI는 높은 성능과 비동기 처리로 유명하니, 이를 통해 더 효율적인 서버를 경험해 볼 수 있습니다. 1. FastAPI로 백엔드 구축FastAPI를 사용해 더미 데이터를 제공하는 REST API를 만듭니다. 실제로는 기상청 API를 연동할 수 있지만, 여기서는 간단히 시뮬레이션합니다. 파일은 backend.py로 저장하세요.from fastapi import FastAPIfrom fastapi.middleware.cors import C..

오라클 저장 프로시저 내부 오류 캡처 및 Python oracledb로 애플리케이션 레벨 오류 처리 방법

오라클 데이터베이스의 저장 프로시저(Stored Procedure, SP)에서 발생하는 내부 오류를 상세히 파악하고, Python의 oracledb 모듈을 사용해 애플리케이션 레벨에서 이를 효과적으로 캡처하는 방법을 설명합니다. 이 글은 오라클 PL/SQL과 Python 개발자를 위해 실용적인 예제와 함께 오류 처리 기법을 다룹니다.1. 오라클 저장 프로시저에서 내부 오류 캡처오라클 저장 프로시저에서 오류를 캡처하려면 PL/SQL의 **예외 처리 블록(EXCEPTION)**을 사용합니다. 이를 통해 오류 코드(SQLCODE)와 오류 메시지(SQLERRM)를 기록하거나 호출한 애플리케이션으로 전달할 수 있습니다.예제: 오류 로깅 테이블에 기록 CREATE TABLE ERROR_LOG ( ERROR_C..

Python과 oracledb로 SQL 파일의 Oracle 저장 프로시저 실행하기

오라클 데이터베이스에서 저장 프로시저를 관리하다 보면, 특정 디렉토리 내의 SQL 파일을 자동으로 실행해야 할 때가 있습니다. 이 블로그에서는 oracledb 라이브러리와 Python을 사용해, 특정 경로와 그 하위 디렉토리를 순회하며 CREATE OR REPLACE PROCEDURE로 시작하는 SQL 파일을 실행하는 방법을 소개합니다. 이 코드는 기존의 oracle_procedure_util.py 모듈을 기반으로 작성되었으며, 디렉토리 순회와 SQL 실행 로직을 추가했습니다.1. 코드 개요이 Python 스크립트는 다음 기능을 수행합니다:디렉토리 순회: 지정된 경로와 하위 디렉토리를 탐색해 .sql 확장자를 가진 파일을 찾습니다.SQL 파일 필터링: 파일 내용이 CREATE OR REPLACE PROC..

Python에서 Oracle 저장 프로시저의 DBMS_OUTPUT.PUT_LINE 메시지 확인하기

오라클 데이터베이스의 저장 프로시저에서 DBMS_OUTPUT.PUT_LINE으로 출력된 디버깅 메시지를 Python에서 확인하는 방법을 소개합니다. 이 블로그에서는 oracle_procedure_util.py 모듈을 기반으로, DBMS_OUTPUT 메시지를 읽어오는 방법을 단계별로 설명하고, 실제 구현 코드를 제공합니다.1. oracle_procedure_util.py 모듈 개요oracle_procedure_util.py는 오라클 저장 프로시저를 호출하고, 결과를 처리하거나 테스트용 SQL 쿼리를 동적으로 생성하는 유틸리티 모듈입니다. 주요 기능은 다음과 같습니다:저장 프로시저 호출: 오라클 저장 프로시저를 호출해 결과 데이터를 처리합니다.랜덤 데이터 생성: 결과 데이터가 없을 경우, 커서 메타데이터를 ..

Oracle DB에서 저장 프로시저 호출 및 동적 데이터 처리 방법

Oracle 데이터베이스에서 저장 프로시저를 호출하고, 결과가 없을 경우 동적으로 대체 데이터를 생성하는 방법을 소개합니다. 이 글에서는 Python의 oracledb 모듈을 활용해 저장 프로시저를 호출하고, 결과 데이터를 분석하며, 필요 시 랜덤 데이터를 생성해 쿼리를 실행하는 과정을 세련되게 정리했습니다. 초보자부터 숙련자까지 참고할 수 있도록 코드와 출력 예시를 포함했습니다.1. Oracle DB 연결 및 저장 프로시저 호출먼저, Oracle DB에 연결하고 저장 프로시저를 호출하는 기본 구조를 살펴보겠습니다. 아래 코드는 oracledb 모듈을 사용해 DB에 연결하고, 특정 저장 프로시저(NEXTPOT.STP_STK_050101_LST_01)를 호출합니다. CREATE OR REPLACE PRO..

Python 패키지 관리자 uv: 속도와 편리함의 새로운 표준

Python 개발 환경에서 패키지 관리와 프로젝트 설정은 필수적이지만, 기존 도구들(pip, Poetry, Conda 등)은 느린 의존성 해결, 복잡한 가상 환경 관리, 도구 간 호환성 문제 등으로 개발자들을 종종 곤란하게 했습니다. 이러한 문제를 해결하기 위해 등장한 uv는 Rust로 작성된 초고속 Python 패키지 및 프로젝트 관리 도구로, 2024년 초 공개된 이후 빠르게 주목받고 있습니다. 이번 글에서는 uv의 특징, 설치 방법, 사용법, 그리고 왜 uv가 기존 도구를 대체할 수 있는지 자세히 알아보겠습니다.1. uv란 무엇인가?uv는 Astral(고성능 Python linter인 Ruff 개발사)이 만든 Python 패키지 및 프로젝트 관리 도구입니다. Rust로 구현되어 기존 Python 기..

Oracle DB Context MCP Server와 Vuetify로 동적 CRUD 화면 구현하기

Oracle DB Context MCP Server를 사용하여 특정 오라클 데이터베이스 테이블의 스키마 정보를 가져오고, 이를 기반으로 Vuetify를 활용해 CRUD(Create, Read, Update, Delete) 화면을 동적으로 생성하는 예제. 아래에서는 Oracle DB Context MCP Server를 통해 테이블 스키마를 조회하고, Vue.js와 Vuetify를 사용하여 해당 테이블에 대한 CRUD 인터페이스를 생성하는 예제를 단계별로 설명합니다.전제 조건Oracle DB Context MCP Server:설치 및 설정 완료 (.env 파일에 오라클 접속 정보 포함).실행 명령: uv run main.pyMCP 서버가 테이블 스키마 조회 및 데이터 질의를 지원한다고 가정.필요 패키지:Ba..