분류 전체보기 1149

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

Nuxt.js와 Spring Boot로 Oracle 저장 프로시저 소스 및 파라미터 조회하기

Nuxt.js 프론트엔드와 Spring Boot 백엔드를 사용해 Oracle DB에서 특정 저장 프로시저의 소스 코드를 조회하고 화면에 표시하는 방법을 소개합니다. Spring Boot에서 저장 프로시저 소스 조회 API를 확장해서, 소스 코드와 함께 저장 프로시저의 파라미터 정보도 함께 반환하도록 수정하겠습니다. Oracle DB에서 파라미터 정보는 USER_ARGUMENTS 또는 ALL_ARGUMENTS 뷰를 통해 조회할 수 있습니다. 아래는 이를 반영한 코드입니다.  Spring Boot: 저장 프로시저 소스 + 파라미터 정보 조회1. 프로젝트 설정 (pom.xml)(이전과 동일, 변경 없음)xml  org.springframework.boot spring-boot-..

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를 사용해 간단한 예제..

Nuxt.js, Spring Boot, Oracle DB로 저장 프로시저 소스 조회 구현하기

Nuxt.js 프론트엔드와 Spring Boot 백엔드를 사용해 Oracle DB에서 특정 저장 프로시저의 소스 코드를 조회하고 화면에 표시하는 방법을 소개합니다. 클라이언트에서 프로시저 이름을 입력하면, Spring Boot가 USER_SOURCE 뷰를 쿼리해 소스를 반환하고, Nuxt.js가 이를 화면에 렌더링합니다. 백엔드는 JdbcTemplate을 활용하며, 프론트엔드는 Axios로 API를 호출합니다. Nuxt.js (Vue.js 기반 프론트엔드), Spring Boot (백엔드), Oracle DB 조합에서 클라이언트에서 특정 저장 프로시저(Stored Procedure)를 지정하면 그 소스를 반환하여 화면에 보여주는 예제 코드를 작성해드리겠습니다.전체 흐름Nuxt.js (클라이언트): 사용자..

import.meta와 import.meta.url로 모듈 메타데이터 활용하기

JavaScript의 ES 모듈(ECMAScript Modules) 시스템은 현대 웹 개발에서 중요한 역할을 합니다. 그 중심에는 import.meta라는 특별한 객체가 있는데, 이 객체는 현재 모듈의 메타데이터를 제공합니다. 이번 글에서는 import.meta의 대표 속성인 import.meta.url을 포함해, 관련 기능들을 기술 블로그 형식으로 살펴보겠습니다. Vue.js와 Vite 환경에서의 활용 예제도 함께 다룹니다.1. import.meta.url: 모듈의 위치를 알아내다import.meta.url은 현재 모듈의 절대 URL을 반환하는 속성입니다. 브라우저나 Node.js 환경에서 파일 경로를 동적으로 가져올 때 유용합니다.브라우저: 위 코드는 현재 .vue 파일의 경로를 템플릿에 출력합니다...

Git Push 알림 시스템: Python으로 Windows 트레이 아이콘과 팝업 구현(터미널 없이 Git Push 알림 실행)하기

안녕하세요! 이번 포스트에서는 Git 저장소에서 상대방이 push를 하면 즉시 알림을 받고, 이를 Windows 시스템 트레이에 아이콘으로 표시하며, 내가 pull해서 병합할 때까지 1분 주기로 팝업 알림을 띄우는 Python 프로그램을 만들어 보겠습니다. 이 과정에서 주기적 체크를 통해 Git 상태를 모니터링하고, 사용자 친화적인 인터페이스를 제공하는 방법을 단계별로 설명하겠습니다. 목표Git 저장소 모니터링: 로컬 Git 저장소에서 원격 저장소의 push 여부를 주기적으로 확인.Windows 트레이 아이콘: 시스템 트레이에 아이콘을 띄워 프로그램이 실행 중임을 표시.주기적 팝업: 1분마다 팝업으로 알림을 띄우고, 병합이 완료될 때까지 반복.Python 기반: 간단하고 확장 가능한 코드를 작성.준비물P..

Nifi 설치..

좋아요, brew install openjdk@21 결과로 보아 Java 21 (버전 21.0.6)이 이미 시스템에 설치되어 있는 걸 확인했습니다. 이제 남은 문제는 JAVA_HOME이 여전히 Java 8을 가리키고 있다는 점입니다. 이를 Java 21로 제대로 설정하면 NiFi가 정상적으로 실행될 겁니다.아래 단계를 따라 JAVA_HOME을 업데이트하고 NiFi를 다시 실행해 보세요.1. Java 21 경로 확인설치된 Java 21의 경로를 찾습니다:bash /usr/libexec/java_home -v 21출력 예: /Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home 또는 /opt/homebrew/Cellar/openjdk@21/21.0.6..

Apache NiFi: 데이터 흐름 관리의 강력한 오픈소스 도구 완벽 분석

데이터 흐름 관리와 ETL(Extract, Transform, Load) 작업을 위한 강력한 도구, Apache NiFi에 대해  파헤쳐보는 시간을 가져보겠습니다. 데이터 엔지니어, 개발자, 또는 데이터 관리에 관심 있는 분이라면 NiFi가 무엇인지, 어떻게 동작하며, 어떤 상황에서 빛을 발하는지 상세히 알아갈 수 있을 겁니다. 자, 커피 한 잔 들고 편안히 앉아서 함께 탐구 시작해 볼까요?Apache NiFi란 무엇인가?Apache NiFi는 데이터를 다양한 소스에서 추출해 변환하고 목적지로 전달하는 과정을 실시간으로 관리할 수 있는 오픈소스 플랫폼입니다. 이 도구는 원래 미국 국가안보국(NSA)이 내부적으로 "NiagaraFiles"라는 이름으로 개발한 것으로, 2014년에 Apache 재단에 기증되..

Python으로 오라클 서버 간 20만 건 데이터 이동 시 타임아웃 해결 방법

안녕하세요, 오늘은 Python에서 두 오라클 서버 간 데이터를 이동할 때, 20만 건 정도에서 타임아웃으로 연결이 끊어지는 문제를 해결하는 방법을 다뤄보겠습니다. 순수 Python 코드로만 문제를 풀어보며, 실무에서 바로 적용할 수 있는 최적화 기법을 소개합니다.문제 상황두 개의 오라클 서버를 Python(cx_Oracle)로 연결해 테이블 데이터를 이동시키던 중, 약 20만 건에서 타임아웃이 발생하며 연결이 끊어졌습니다. 이 문제는 네트워크, 데이터베이스 설정, 또는 코드 비효율성에서 비롯될 가능성이 높습니다. 아래에서 원인을 분석하고 해결책을 제시합니다.원인 분석오라클 세션 타임아웃: 서버 설정이나 cx_Oracle 연결의 기본 타임아웃이 짧음.대량 데이터 부하: 한 번에 20만 건을 처리하며 메모..