728x90
728x90

Node.js 를 배워보자 60

Nuxt.js로 오라클 debug_log 테이블 실시간 모니터링 구현하기

오라클 데이터베이스의 debug_log 테이블에 데이터가 삽입될 때마다 실시간으로 화면에 태그로 표시되도록 Nuxt.js 애플리케이션을 구현해보겠습니다. 이를 위해 서버에서 주기적으로 데이터를 폴링(polling)하거나, 가능하다면 웹소켓(WebSocket)을 사용해 실시간 업데이트를 처리할 수 있습니다. 여기서는 간단한 폴링 방식과 Nuxt 3를 활용한 예제를 블로그 형식으로 정리하겠습니다.  2025.03.17 - [Oracle Database 강좌] - 오라클에서 디버깅 로그를 테이블에 저장하기: 프로시저명과 라인 번호 추가  목표debug_log 테이블에 데이터가 추가될 때마다 Nuxt.js 페이지에서 실시간으로 테이블에 반영.주기적인 API 호출을 통해 데이터를 가져오고, 로 렌더링.간단한 U..

Node.js로 JavaScript 파일의 함수 호출 정보 파싱하기

Node.js, JavaScript, 함수 호출, 파싱, 아규먼트, AST, 코드 분석, 개발 도구프로그래밍을 하다 보면 코드 내에서 어떤 함수가 어떻게 호출되고 있는지, 그 함수에 어떤 아규먼트가 전달되는지를 분석해야 할 때가 있습니다. 이번 글에서는 Node.js 환경에서 JavaScript 파일을 읽고, 모든 함수 호출과 관련된 정보를 파싱하는 방법을 알아보겠습니다. 이를 위해 AST(Abstract Syntax Tree)를 활용하며, 구체적인 예제 코드를 제공합니다.1. 필요한 도구 준비하기AST, @babel/parser, @babel/traverse, Node.js 모듈, 파일 읽기, 설치먼저, JavaScript 코드를 파싱하려면 AST를 생성하고 탐색할 도구가 필요합니다. 여기서는 @bab..

Node.js로 일반 JS와 TS 파일을 파싱하는 다양한 방법

안녕하세요! 오늘은 Node.js를 활용해 일반 JavaScript (JS)와 TypeScript (TS) 파일을 파싱하는 다양한 방법을 알아보겠습니다.파일 파싱은 코드 분석, 자동화 도구 제작, 또는 빌드 프로세스에서 자주 사용되는데요.이 글에서는 실용적인 예제와 함께 접근 방법을 소개하겠습니다. 그럼 시작해볼까요? 1. 기본 파일 읽기와 간단한 파싱가장 간단한 방법은 Node.js의 내장 모듈 fs를 사용해 파일을 읽고 문자열로 다루는 것입니다.   const fs = require('fs');// JS 파일 읽기const jsCode = fs.readFileSync('sample.js', 'utf8');console.log('JS 파일 내용:', jsCode);// TS 파일 읽기const tsCo..

Node.js 모듈 시스템의 심층 분석: cts, cjs, ts, mts, mjs 차이점

Node.js는 JavaScript 런타임 환경으로, 서버 사이드 자바스크립트 개발에 널리 사용됩니다. Node.js에서 모듈 시스템은 코드를 재사용 가능한 단위로 분리하여 관리하는 중요한 역할을 합니다. 이 글에서는 Node.js에서 사용되는 다양한 모듈 확장자(cts, cjs, ts, mts, mjs)의 의미와 차이점을 자세히 알아보고, 각 확장자를 선택해야 하는 상황에 대해 설명합니다.모듈 시스템의 진화: CommonJS와 ES ModulesNode.js 초기에는 CommonJS(CJS) 모듈 시스템이 주로 사용되었습니다. CJS는 require() 함수를 통해 모듈을 가져오고, module.exports를 통해 모듈을 내보내는 방식을 사용합니다. 하지만 CJS는 동기적 로딩 방식을 사용하고, 모듈..

Node.js 개발의 필수 도구: Nodemon을 활용한 효율적인 개발 환경 구축

Node.js를 이용하여 웹 서버를 개발할 때, 코드를 수정할 때마다 서버를 매번 재시작해야 하는 번거로움이 있습니다. 이러한 반복적인 작업을 자동화하고 개발 생산성을 높여주는 도구가 바로 Nodemon입니다. Nodemon은 Node.js 프로젝트의 파일이 변경될 때마다 자동으로 서버를 재시작하여 개발자가 코드 변경 사항을 바로 확인할 수 있도록 해주는 강력한 도구입니다.Nodemon이란?Nodemon은 Node.js 개발 과정에서 개발자의 생산성을 향상시키기 위해 만들어진 오픈 소스 도구입니다. Node.js 프로젝트의 파일이 변경되면 자동으로 서버를 재시작하여 개발자가 코드 변경 결과를 빠르게 확인할 수 있도록 돕습니다. 이를 통해 개발 주기를 단축하고 개발 효율성을 높일 수 있습니다.Nodemon..

Node.js Express 환경에서 Swagger와 Redoc을 활용한 API 문서화

Node.js와 Express.js를 사용하여 API를 개발할 때, API 문서화는 필수적인 작업입니다. 잘 정돈된 API 문서는 개발자들 간의 효율적인 협업을 돕고, API를 사용하는 클라이언트 개발자들에게 명확한 가이드를 제공합니다. 이 글에서는 Swagger와 Redoc 라이브러리를 활용하여 Node.js Express 환경에서 API 문서를 자동 생성하는 방법을 상세히 알아보겠습니다. Swagger란 무엇인가?Swagger는 RESTful API를 위한 인터페이스 설명 언어(OpenAPI Specification)를 기반으로 API를 설계하고 문서화하는 오픈 소스 프레임워크입니다. Swagger를 사용하면 API의 구조, 요청/응답 데이터 형식, 인증 방법 등을 명확하게 정의할 수 있으며, 이를 ..

MySQL/MariaDB 연결: mysql, mysql2, mysql2/promise 비교 분석

mysql, mysql2, mysql2/promise는 모두 Node.js에서 MySQL 및 MariaDB와 통신하기 위해 사용되는 라이브러리입니다. 각 패키지와 모듈의 차이점을 정리하겠습니다.1. mysql 패키지설명: MySQL 데이터베이스에 연결하기 위한 초기 라이브러리입니다.특징:비동기 방식이지만 콜백(callback) 기반으로 동작합니다.오래된 라이브러리로 현재는 더 이상 유지보수가 이루어지지 않습니다.장점:간단하고 가벼운 패키지.단점:프로미스(Promise)나 async/await을 지원하지 않아 현대적인 비동기 패턴과 호환성이 낮음.일부 최신 기능 부족.예제 코드:const mysql = require('mysql');const connection = mysql.createConnection..

JavaScript의 핵심 비동기 처리: async/await, Promise 심층 분석

자바스크립트에서 비동기 처리를 다룰 때 빼놓을 수 없는 개념이 바로 async/await와 Promise입니다. 이들은 복잡하고 비효율적인 콜백 지옥을 해결하고, 더욱 직관적이고 효율적인 비동기 코드를 작성할 수 있도록 도와줍니다. 본 글에서는 async/await와 Promise의 개념, 작동 원리, 그리고 실제 개발 환경에서의 활용 방법에 대해 자세히 알아보겠습니다.1. 왜 비동기 처리가 필요한가?자바스크립트는 싱글 스레드 언어이기 때문에 한 번에 하나의 작업만 수행할 수 있습니다. 하지만 네트워크 요청, 파일 읽기/쓰기 등 시간이 오래 걸리는 작업이 발생하면 프로그램이 멈춰버리는 문제가 발생합니다. 이러한 문제를 해결하기 위해 비동기 처리가 필요합니다. 비동기 처리를 통해 시간이 오래 걸리는 작업을..

Node.js와 Puppeteer를 활용한 웹 크롤링: 자세한 가이드

Node.js는 비동기 이벤트 기반의 JavaScript 런타임 환경으로, 서버 사이드 개발에 널리 사용됩니다. Puppeteer는 Node.js를 위한 headless Chrome 또는 Chromium을 제어하는 라이브러리로, 웹 페이지를 프로그램 방식으로 조작하고 자동화하는 데 사용됩니다. 이 두 기술을 결합하면 강력한 웹 크롤링 도구를 만들 수 있습니다.왜 Node.js와 Puppeteer를 사용해야 할까요?JavaScript로 웹 개발: 웹 개발 경험이 있다면 JavaScript를 사용하여 웹 페이지를 조작하는 것이 자연스럽습니다.비동기 처리: Node.js의 비동기 특성 덕분에 여러 페이지를 빠르게 크롤링할 수 있습니다.Headless Chrome: 실제 브라우저 환경에서 웹 페이지를 렌더링하므..

npm 사용을 위한 방화벽 해제: Node.js 개발 환경 구축 가이드

Node.js 개발 환경을 구축하고 npm을 통해 패키지를 설치하려면, 외부 네트워크와의 연결을 허용해야 합니다. 이를 위해서는 방화벽에서 특정 포트와 도메인에 대한 접근을 허용해야 합니다. 이 글에서는 npm을 사용하기 위해 열어야 할 포트와 도메인, 그리고 방화벽 설정 시 주의해야 할 점을 자세히 설명합니다.왜 방화벽 설정이 필요한가요?npm은 Node.js 패키지 관리 시스템으로, 전 세계 개발자들이 공유하는 방대한 패키지 저장소에 접근하여 필요한 모듈을 설치합니다. 이 과정에서 npm은 인터넷을 통해 패키지 정보를 가져오고, 실제 패키지 파일을 다운로드해야 합니다. 따라서 방화벽이 닫혀 있다면 npm이 정상적으로 작동하지 않아 패키지 설치가 불가능해집니다.npm을 사용하기 위해 열어야 할 포트와 ..

728x90
728x90