본문 바로가기

nodejs33

[nodeJS] Puppeteer로 간단한 검색 웹 매크로 만들기 Chrome 브라우저를 제어할 수 있게 해주는 Node.js 라이브러리인 Puppeteer로 사용자 인터랙션을 모방하거나 웹사이트 스크래핑 등 다양한 작업을 자동화할 수 있습니다. 이번에는 네이버에 검색어를 입력하여 스크린샷으로 저장하는 매크로를 만들어 보겠습니다. 1. Puppeteer 설치하기 npm install puppeteer 2. 크롬 브라우저에서 네이버 접속하기 * puppeteer.launch() : 새 브라우저 인스턴스를 생성 * puppeteer.newPage() : 함수로 새 탭 열기 * page.goto() : 특정한 링크로 이동 const puppeteer = require('puppeteer'); async function run() { const browser = await p.. 2023. 9. 9.
[nodeJS] JWT 인증하기 JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증과 권한 부여를 위해 널리 사용되는 토큰 기반 인증 방식입니다. JWT는 서버와 클라이언트 간의 안전한 정보 전달을 가능하게 하며, 토큰 자체에 필요한 정보를 포함하여 사용자 식별 및 권한 확인을 수행합니다. 1. jsonwebtoken 모듈 설치하기 npm install jsonwebtoken 2. JWT 토큰 생성하기 jwt.sign() 함수를 사용하여 토큰 생성 첫 번째 인자로 토큰에 포함될 데이터(payload)를 전달하고, 두 번째 인자로 시크릿 키를 전달 시크릿 키는 서버와 클라이언트 간에 공유되어야 하며, 토큰의 유효성 검사에 사용 const express = require('express'); const jwt = requ.. 2023. 8. 31.
[nodeJS] Node.JS 서버의 사용량 제한 구현하기 Node.js 서버에서 사용량 제한을 구현하는 것은 보안 및 성능 관리 측면에서 중요합니다. 사용량 제한을 통해 악의적인 요청이나 과도한 부하로부터 서버를 보호하고, 리소스를 효율적으로 관리할 수 있습니다. 1. Express-rate-limit 모듈 설치하기 사용량 제한을 구현하기 위해서는 express-rate-limit 모듈을 설치 필요 Express.js 애플리케이션에서 미들웨어로 사용되며, 요청당 허용되는 최대 요청 수와 시간 간격 등 다양한 설정 옵션 제공 npm install express-rate-limit 2. 기본적인 사용량 제한 설정하기 * windowMs 옵션: 시간 간격을 밀리초 단위로 지정 * max 옵션: 해당 시간 간격 내에 허용되는 최대 요청 수 const express =.. 2023. 8. 30.
[nodeJS] Node.JS 서버에 CORS 허용 설정하기 CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션에서 동일 출처 정책(Same-Origin Policy)을 우회하여 다른 도메인의 리소스에 접근하는 것을 허용하는 정책입니다. 기본적으로 브라우저는 보안상의 이유로 다른 출처의 리소스 요청을 차단합니다. 따라서 서버 측에서 CORS를 활성화하려면 특정 도메인이나 출처에서 온 요청을 허용해야 합니다. 1. Express.js를 사용한 기본 서버에서 CORS 설정 모든 출처에 대한 CORS 허용하기 npm install cors const express = require('express'); const cors = require('cors'); const app = express(); // 미들웨어로 CORS 활성화 app.us.. 2023. 8. 29.
[nodeJS] Node.JS와 mongoDB 연동 방법 MongoDB 서버를 이미 설치하고 실행한 경우를 전제로 작업 진행 1. MongoDB 패키지 설치 npm install mongodb 2. MongoDB 연결 생성 mongodb 패키지를 import하고, 연결 구성 정보 (username, password, hostname, port, database 이름)를 지정 MongoClient 객체를 만든 다음, connect() 함수를 호출하고 연결 URL과 구성 옵션을 전달하여 MongoDB 서버에 연결 const { MongoClient } = require("mongodb"); const uri = "mongodb+srv://username:password@cluster.mongodb.net/database"; const client = new Mon.. 2023. 8. 8.
[nodeJS] Node.JS와 mySQL 연동 방법 MySQL 서버를 이미 설치하고 실행한 경우를 전제로 작업 진행 1. MySQL 패키지 설치 npm install mysql 2. MySQL 연결 생성 mysql 패키지를 import 후 연결을 설정할 객체와 연결 정보(호스트, 사용자, 비밀번호, 데이터베이스 이름 등) 입력하고, connect() 메소드를 사용하여 MySQL 서버에 연결 const mysql = require("mysql"); const connection = mysql.createConnection({ host: "localhost", user: "your_username", password: "your_password", database: "your_database", }); connection.connect((error) => {.. 2023. 8. 7.
[nodeJS] 에러 및 예외 처리 방법 1. Try-Catch 구문 try 블록에서 예외가 발생하면 즉시 catch 블록으로 이동하여 예외를 처리 function syncFunction() { // 예외 발생 가능한 코드 throw new Error("Error occurred"); } try { syncFunction(); } catch (error) { console.error("Catch block handling the error:", error); } 2. Error-first Callback (오류 우선 콜백) Node.js에서 콜백 함수의 첫 번째 매개변수는 오류고 나머지 매개변수는 결과 데이터 const fs = require("fs"); fs.readFile("non_file.txt", "utf8", (error, data) .. 2023. 8. 6.
[nodeJS] Docker로 Node.JS 배포하기 * 로컬에 있는 Node.js 프로젝트를 Docker로 포팅하는 방법 (Docker가 미리 설치되어 있는 것을 전제로 작업 진행) 1. Node.js 프로젝트의 루트 디렉토리 Dockerfile 작성 FROM node:16: Node.js 18.x 버전 이미지를 사용 WORKDIR /app: 작업 디렉토리를 /app으로 설정 COPY package*.json ./: package.json 및 package-lock.json 파일을 이미지에 복사 RUN npm install: npm 패키지 설치 COPY . .: 프로젝트 파일을 이미지에 복사 EXPOSE 3000: 3000 포트 사용 CMD [ "npm", "start" ]: 프로젝트가 실행될 때 "npm start" 명령을 실행 FROM node:18 .. 2023. 7. 3.
[nodeJS] 우분투로 Node.JS 배포하기 * 미리 우분투가 깔려있고, nodeJS 프로젝트는 로컬에 있는 것을 기준으로 설명합니다. 1. 로컬에서 작성한 Node.js 프로젝트를 압축 cd /path/to/your/local/project tar czvf project.tar.gz . 2. 압축한 파일을 우분투 서버에 전송 (밑의 'your_server_ip'와 'user'는 실제 내용으로 바꿔주세요) scp project.tar.gz user@your_server_ip:/path/to/server/ 3. 우분투 서버에서 Node, npm, PM2 설치 sudo apt-get update curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -.. 2023. 6. 27.