파이썬 62

파일 검색 및 문맥 리포트 생성하기

파일 시스템에서 특정 검색어를 포함한 파일을 찾아 그 문맥을 확인하고 싶을 때가 있습니다. 이 글에서는 파이썬을 사용해 절대 경로와 파일명 리스트를 입력받아 검색어를 찾고, 해당 줄의 위 5줄과 아래 3줄을 함께 리포트하는 스크립트를 소개합니다. 이 코드는 효율적이고 간단하며, 다양한 상황에서 활용 가능합니다. 코드 설명아래는 검색어를 찾아 문맥과 함께 리포트하는 파이썬 코드입니다.import osdef search_files(absolute_path, file_list, search_term): """ 절대 경로 이하에서 파일명 리스트에 해당하는 파일들을 읽어 검색어를 찾고, 검색어가 포함된 줄의 위 5줄과 아래 3줄을 함께 리포트합니다. Parameters: abs..

오라클 프로시저 파라미터 정보 조회하는 파이썬 코드 (oracledb 사용)

오라클 데이터베이스에서 프로시저(Procedure)의 파라미터 정보를 조회하는 것은 DBA나 개발자에게 유용한 작업입니다. 특정 프로시저의 파라미터 이름, 데이터 타입, 입력/출력 여부를 확인해야 할 때가 많죠. 이번 글에서는 Python의 oracledb 라이브러리를 사용해 오라클 프로시저의 파라미터 정보를 조회하는 코드를 작성해 보겠습니다. 이 코드는 프로시저 이름을 입력받아 해당 파라미터 정보를 반환하는 간단한 스크립트입니다.준비물Python 환경: Python 3.6 이상oracledb 라이브러리: 설치가 필요합니다. 아래 명령어로 설치하세요.bash pip install oracledb오라클 데이터베이스 접속 정보: 사용자 이름, 비밀번호, DSN(데이터 소스 이름)이 필요합니다.오라클 DBA ..

파이썬으로 오라클 스토어드 프로시저 실행하기: 다중 IN/OUT 파라미터와 커서 열 타입 출력 (0개 행 포함)

오라클 스토어드 프로시저에서 SYS_REFCURSOR로 반환되는 emp_names가 0개 행을 반환하더라도, 반환되는 열(first_name, last_name, age)의 데이터 타입(예: VARCHAR2, DECIMAL)을 출력하는 방법을 구현하겠습니다. 이를 위해 oracledb의 커서 객체에서 열 메타데이터를 추출하여 각 열의 데이터 타입을 확인합니다. 또한, 다중 IN/OUT 파라미터를 처리하고, 모든 파라미터의 값, 길이, 타입을 출력합니다. 핵심 아이디어SQL 파일 읽기: 스토어드 프로시저의 SQL 코드가 담긴 파일을 읽어옵니다.데이터베이스 연결: oracledb로 오라클 데이터베이스에 연결합니다.스토어드 프로시저 실행: SQL 코드를 실행해 프로시저를 생성합니다.다중 IN/OUT 처리: 여..

파이썬으로 디렉토리 내 파일의 문자열 처리 및 갱신하기 (재귀 호출 방식)

특정 디렉토리 내 모든 파일을 읽어 문자열의 마지막 스페이스를 제거하고, 탭을 4개의 스페이스로 변환한 뒤 파일을 갱신하는 파이썬 코드를 재귀 호출 방식으로 수정해 작성하겠습니다. 이 코드는 하위 디렉토리를 직접 재귀적으로 탐색하며 텍스트 파일을 처리합니다.코드 설명재귀 디렉토리 순회: os.listdir와 재귀 호출을 사용해 디렉토리와 하위 디렉토리를 탐색.파일 읽기/수정: 각 파일을 읽어 문자열을 처리한 후 원본 파일에 덮어씌움.문자열 처리:문자열 끝의 공백 제거: rstrip() 사용.탭을 4개의 스페이스로 변환: replace('\t', ' ') 사용.에러 처리: 파일 읽기/쓰기 중 발생할 수 있는 오류를 처리.파이썬 코드import osdef process_file(file_path): t..

MCP 구축과 활용: 커서와 파이썬을 활용한 상세 가이드

MCP란 무엇인가?**모델 컨텍스트 프로토콜(Model Context Protocol, MCP)**는 AI 모델이 외부 데이터 소스나 도구와 표준화된 방식으로 상호작용할 수 있도록 설계된 오픈 소스 프로토콜입니다. Anthropic이 2024년 11월에 공개한 MCP는 AI가 실시간 데이터, 웹 API, 데이터베이스, 파일 시스템 등 다양한 리소스에 접근하도록 도와줍니다. 이를 통해 AI의 한계를 극복하고 더 강력하고 유연한 애플리케이션 구축이 가능해졌습니다. MCP는 마치 "AI의 USB-C 포트"처럼, 다양한 시스템과 AI를 연결하는 표준화된 통로 역할을 합니다.이 블로그에서는 MCP를 **커서(Cursor)**와 파이썬을 활용해 구축하고 사용하는 방법을 상세히 다루며, 다양한 활용 사례를 소개합니다..

파이썬의 다중 줄 문자열 (Multiline String): """ 와 ''' 의 모든 것

파이썬에서 여러 줄에 걸친 문자열을 표현하고 싶을 때, 우리는 큰따옴표 세 개(""") 또는 작은따옴표 세 개(''')를 사용합니다. 이러한 문법은 코드의 가독성을 높이고, 복잡한 문자열을 쉽게 다룰 수 있도록 도와줍니다. 이 글에서는 파이썬의 다중 줄 문자열에 대해 자세히 알아보고, 다양한 활용 방법과 함께 그 차이점을 명확하게 설명하겠습니다.1. 다중 줄 문자열의 개념파이썬에서 문자열은 작은따옴표(') 또는 큰따옴표(")로 감싸 표현합니다. 하지만 한 줄에 길게 이어지는 문자열은 가독성이 떨어지고, 특히 여러 줄에 걸친 문자열을 표현할 때는 더욱 불편합니다. 이러한 문제를 해결하기 위해 파이썬에서는 큰따옴표 세 개(""") 또는 작은따옴표 세 개(''')를 사용하여 다중 줄 문자열을 표현하는 방법을 ..

Scrapy: 강력한 파이썬 웹 크롤링 프레임워크를 활용한 데이터 수집 가이드

Scrapy는 파이썬으로 작성된 오픈 소스 웹 크롤링 프레임워크입니다. 웹 사이트에서 필요한 데이터를 자동으로 추출하여 원하는 형식으로 저장하는 작업을 웹 크롤링이라고 하는데, Scrapy는 이러한 작업을 효율적이고 체계적으로 수행하도록 도와주는 강력한 도구입니다.Scrapy의 주요 특징빠르고 효율적: 비동기 네트워킹 라이브러리인 Twisted를 기반으로 하여 빠른 속도를 자랑하며, 대규모 웹 사이트를 크롤링하는 데 적합합니다.유연하고 확장성이 좋음: 다양한 데이터 저장 방식, 미들웨어, 아이템 파이프라인 등을 통해 커스터마이징이 가능하여 복잡한 크롤링 작업에도 유용하게 활용할 수 있습니다.간편한 사용: 파이썬 기반으로 개발되어 Python 문법에 익숙한 개발자라면 쉽게 학습하고 사용할 수 있습니다.강력..

Python cx_Oracle 설치: 오라클 데이터베이스와의 연결을 위한 상세 가이드

파이썬으로 오라클 데이터베이스를 다루고 싶다면 필수적인 모듈이 바로 cx_Oracle입니다. cx_Oracle은 파이썬에서 오라클 데이터베이스에 연결하고 SQL 쿼리를 실행할 수 있도록 도와주는 강력한 도구입니다. 하지만 설치 과정에서 다양한 환경 설정이 필요하기 때문에 처음 접하는 사용자들에게는 어렵게 느껴질 수 있습니다. 이 글에서는 파이썬 cx_Oracle 모듈을 설치하는 모든 과정을 단계별로 자세히 설명하여 누구나 쉽게 따라 할 수 있도록 안내합니다.1. Oracle Instant Client 설치cx_Oracle 모듈을 사용하기 위해서는 먼저 Oracle Instant Client를 설치해야 합니다. Oracle Instant Client는 Oracle 데이터베이스 클라이언트 라이브러리의 일종으..

랭체인의 에이전트 기능을 통한 SQL 쿼리 자동 생성: 자연어로 데이터베이스를 탐색하는 새로운 방법

랭체인(LangChain)은 대규모 언어 모델(LLM)을 활용하여 다양한 작업을 자동화하는 강력한 프레임워크입니다. 특히, 랭체인의 에이전트 기능은 LLM에게 다양한 작업을 수행하도록 지시하고, 필요에 따라 추가적인 정보를 검색하거나 다른 모델과 상호 작용하는 등 복잡한 작업을 수행할 수 있도록 지원합니다. 이 글에서는 랭체인의 에이전트 기능을 활용하여 자연어로 질문을 입력하면 SQL 쿼리를 자동으로 생성하는 방법에 대해 자세히 알아보겠습니다.랭체인 에이전트를 활용한 SQL 쿼리 생성의 이점낮은 진입 장벽: SQL 문법을 몰라도 자연어로 질문하여 원하는 데이터를 얻을 수 있습니다.생산성 향상: 반복적인 SQL 쿼리 작성 작업을 자동화하여 개발자의 생산성을 높일 수 있습니다.데이터 분석의 민주화: 데이터 ..

오라클의 스토어 프로시져나 함수의 내용을 주석을 제외해서 내용중에 사용되는 테이블의 명들을 추출

실무에서 사용되는 SQL 쿼리는 보통 더 복잡하고 다양한 기능을 포함합니다. 예를 들어, WITH 절, 서브쿼리, 복잡한 JOIN, UNION, CASE 문 등이 포함될 수 있습니다. 이와 같은 복잡한 SQL 쿼리에서 테이블 이름을 추출할 수 있도록 코드를 확장할 수 있습니다.아래는 보다 복잡한 SQL 쿼리 예시와 이를 처리할 수 있는 파이썬 코드입니다. 쿼리에서 주석을 제거하고, 다양한 형태의 SQL 구문에서 테이블 이름을 추출하는 로직을 보강한 코드입니다.예시 SQL 코드 (실무에 가깝게 복잡한 쿼리)sql_code = """-- 이 부분은 주석입니다/* 멀티라인 주석 여러 줄에 걸쳐서 작성된 주석입니다 여기까지 주석 */WITH temp_dept AS ( SELECT dept_id, COUNT..