Python을 배워보자 99

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..

Python으로 오라클 필드명과 카멜 케이스 변수 매핑 자동화하기

데이터베이스 개발에서 오라클 필드명(스네이크 케이스)과 카멜 케이스 변수명을 매핑하는 작업은 종종 번거롭습니다. 특히, 필드명과 변수명이 일치하지 않거나 순서가 어긋난 경우 이를 비교하고 정리하는 데 시간이 많이 걸립니다. 이번 글에서는 Python을 사용해 오라클 필드명과 카멜 케이스 변수명을 자동으로 비교하고, 매핑되지 않은 변수를 아래로 밀어내어 비교 조견이 가능한 출력 파일을 생성하는 방법을 소개합니다. 이 스크립트는 주석도 유지하며, 아래에 매핑 가능한 변수가 있다면 순서를 조정하는 기능까지 포함합니다.요구사항입력 파일(test.txt)은 한 줄 단위로 |를 기준으로 왼쪽은 오라클 필드명(예: USER_ID), 오른쪽은 카멜 케이스 변수명(예: userId)으로 구성됩니다. 이 파일을 읽어 다음..

ㅎㅎ

import jsondata = { "이름": "홍길동", "나이": 30, "거주지": "서울", "취미": ["독서", "여행", "게임"]}# 딕셔너리를 JSON 문자열로 변환json_string = json.dumps(data, ensure_ascii=False, indent=4)print(json_string)# JSON 문자열을 딕셔너리로 변환loaded_data = json.loads(json_string)print(loaded_data)# 딕셔너리를 JSON 파일로 저장with open("data.json", "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=4)# JSON 파일에..

오라클에서 테이블의 SELECT 결과를 그대로 INSERT문으로 변환

오라클에서 테이블의 SELECT 결과를 그대로 INSERT문으로 변환해주는 Python 코드를 작성해드릴게요. 이 코드는 poe-api-wrapper와는 별개로, 오라클 데이터베이스에 접속해서 데이터를 읽고 INSERT문을 생성하는 예제입니다. 오라클 접속을 위해 cx_Oracle 라이브러리를 사용하며, 아래는 구체적인 사례와 함께 작성된 코드입니다.  요구사항입력: 오라클 테이블에서 SELECT한 결과.출력: 해당 결과를 기반으로 한 INSERT INTO SQL 문.상황 예시: employees 테이블에서 데이터를 읽고, 그 데이터를 그대로 employees_backup 테이블에 넣는 INSERT문을 생성.사전 준비Oracle Client 설치: cx_Oracle을 사용하려면 Oracle Instant..

Poe.com 에서 AI 챗봇을 Python으로 불러서 써보자

pip install -U poe-api-wrapper[proxy]에 대해 더 쉽게 설명하고, 구체적인 예제 사례를 들어서 풀어보겠습니다. 이 라이브러리는 Poe.com이라는 사이트에서 제공하는 AI(예: GPT-4, Claude 같은 챗봇)를 Python으로 쉽게 사용할 수 있게 해주는 도구입니다. [proxy]는 네트워크에 방해가 있을 때(예: 차단된 지역) 우회해서 접속할 수 있게 도와주는 옵션이에요. 이제 초보자도 이해할 수 있게 단계별로 설명하고, 실제 상황을 예로 들어볼게요.쉽게 풀어보는 poe-api-wrapper[proxy] 설명이게 뭔가요?poe-api-wrapper: Poe.com이라는 사이트에서 AI 챗봇을 Python으로 불러서 쓸 수 있게 해주는 도구.[proxy]: 인터넷 접속에..

Python으로 텔레그램 봇 만들기: 초보자를 위한 상세 가이드

오늘은 특별한 여정을 함께 떠나려 합니다. 바로 Python의 마법과 텔레그램(Telegram)의 강력한 API를 결합하여 여러분만의 지능적인 디지털 비서, 그러니까 '봇'을 창조하는 비밀에 대해 알아볼 거예요. 이 여정은 코드 한 줄, 아이디어 하나가 어떻게 실시간으로 소통하는 디지털 생명체로 변신하는지 지켜보는 흥미진진한 모험이 될 것입니다!텔레그램은 단순한 메신저가 아니라 개발자들의 놀이터입니다. 256비트 암호화로 무장한 보안성, 클라우드 기반의 빠른 응답 속도, 그리고 무엇보다 개발자 친화적인 API가 여러분의 상상력을 현실로 구현할 수 있는 완벽한 환경을 제공합니다. 전 세계 7억 명 이상의 사용자와 소통할 수 있는 플랫폼, 그 중심에 여러분의 봇이 자리할 수 있다고 상상해 보세요!여러분은 이..

TypeScript 파일 파싱하기: Node.js와 Python 연동으로 const 객체를 Python 딕셔너리로 변환하기

TypeScript 파일을 파싱하기 위해 외부 라이브러리를 사용하는 예제를 보여드리겠습니다. 여기서는 typescript 공식 패키지를 사용하여 TS 파일을 분석하고 const 변수의 객체 초기값을 Python 딕셔너리로 변환하는 방법을 설명합니다.먼저, Python에서 TypeScript를 사용하려면 pytypescript나 typescript를 직접 호출할 수 있는 환경이 필요하지만, Python에서 직접 TS 파서를 호출하는 대신 node와 typescript를 활용한 방법을 사용하겠습니다. 아래는 이를 구현한 예제입니다.준비 단계Node.js와 TypeScript 설치가 필요합니다:bash npm install -g typescriptPython에서 Node.js 스크립트를 호출하거나, ts-no..

FastAPI로 빠르고 강력한 API 구축하기: 비동기 처리와 자동 Swagger UI 활용

FastAPI는 Python으로 RESTful API를 빠르고 쉽게 구현할 수 있는 현대적인 프레임워크로, 비동기 지원과 자동 Swagger UI 같은 강력한 기능을 제공합니다. 아래에서 이를 구체적으로 설명하고, 독립적인 예제를 통해 사용 방법을 보여드리겠습니다.FastAPI란?FastAPI는 Python 3.6 이상에서 동작하며, Starlette(비동기 웹 프레임워크)과 Pydantic(데이터 검증 및 직렬화)을 기반으로 설계되었습니다. Flask와 달리 비동기 처리를 기본으로 지원하며, API 문서 자동 생성과 타입 힌트를 활용한 코드 가독성이 큰 장점입니다.주요 특징: 비동기 지원과 자동 Swagger UI1. 비동기 지원FastAPI는 Python의 asyncio와 async/await 구문을..

Flask로 RESTful API 구현 및 Vue.js와의 CORS 문제 해결

Python의 경량 프레임워크 Flask를 사용해 Django 없이 간단한 RESTful API를 구현하는 방법을 소개합니다. GET, POST, PUT, DELETE 메서드로 아이템을 관리하며, Vue.js 프론트엔드와 연동 시 발생할 수 있는 CORS 문제를 flask-cors로 해결합니다. 메모리 내 데이터로 동작하는 기본 예제와 Oracle DB 연결 옵션을 제공하며, 특정 출처와 메서드를 제한하는 CORS 설정도 다룹니다. Vue.js에서 Flask API를 호출하는 간단한 예제 포함. Python으로 Django를 사용하지 않고 간단한 RESTful API를 구현하려면, Flask나 FastAPI 같은 가벼운 프레임워크가 적합합니다. 여기서는 초경량 프레임워크인 Flask를 사용해 간단한 예제..