[Node.js] Nunjucks 템플릿에서 selected 속성 자동 선택
·
Node.js
`` 태그나 `` 태그에 `selected` 또는 `checked` 속성을 자동으로 추가기존 Java Spring 프로젝트 개발 시 자주 사용하던 프론트 렌더링 관련 Util 함수를 Node.js + Nunjucks 환경에서도 유사하게 구현해보았습니다. 기존 Java 프로젝트 방식Java 단public static String selected(String v1, String v2) { return (StringUtils.isNotBlank(v1) && v1.equals(v2)) ? "selected" : "";}public static String checked(String v1, String v2) { return (StringUtils.isNotBlank(v1) && v1.equals(v2..
[Node.js] Passport 를 이용한 사용자 인증 및 bcrypt 암호화
·
Node.js
비밀번호 암호화bcryptbcrypt : 사용자의 비밀번호를 안전하게 저장하기 위해 단방향 해시 암호화를 제공하는 라이브러리비밀번호를 직접 저장하면 보안 위험이 있기 때문에 항상 암호화해서 저장해야 함bcrypt 설치 명렁어npm install bcrypt비밀번호 암호화 적용const { Model, DataTypes } = require("sequelize");const bcrypt = require("bcrypt");module.exports = (sequelize) => { class Member extends Model {} Member.init( { // ... }, { sequelize, // ... hooks: {..
[Node.js] 회원 등록 API 요청 테스트
·
Node.js
Sequelize 연동 [Node.js] Sequelize ORM를 이용해 MySQL 연동MySQL과 SequelizeMySQLMySQL : 가장 널리 사용되는 관계형 데이터베이스(RDBMS)데이터를 테이블 (Table) 구조로 저장하고 SQL 쿼리로 관리 SequelizeSequelize : MySQL, PostgreSQL 등을 지원하는 Node.js ORM (Object-Relationjackinquantico.tistory.com 회원 등록 API 작성routes/member.js 수정const express = require("express");const router = express.Router();const { Member } = require("../models");// 회원 등록router..
[Node.js] Sequelize ORM를 이용해 MySQL 연동
·
Node.js
MySQL과 SequelizeMySQLMySQL : 가장 널리 사용되는 관계형 데이터베이스(RDBMS)데이터를 테이블 (Table) 구조로 저장하고 SQL 쿼리로 관리 SequelizeSequelize : MySQL, PostgreSQL 등을 지원하는 Node.js ORM (Object-Relational Mapping) 라이브러리SQL을 직접 작성하지 않고도 JavaScript 코드로 데이터베이스를 조작 가능`Model` 과 `Query` 를 사용해 데이터베이스 작업을 쉽게 처리Sequelize 설치 및 초기화npm install sequelize mysql2 sequelize-cli`sequelize` : ORM 라이브러리`mysql2` :MySQL과 연결`sequelize-cli` : Sequeli..
[Node.js] Express Router를 이용한 모듈화
·
Node.js
Express 프레임워크 [Node.js] Express 프레임워크와 미들웨어Express 프레임워크Express 설치npm install expressExpress 를 이용한 기본 웹 서버 코드`app.js` 에 코드 작성const express = require("express"); // Express 모듈 가져오기const app = express(); // Express 애플리케이션 생성appjackinquantico.tistory.com Express 에 라우트 추가const express = require("express");const app = express();const port = 3000;app.get("/", (req, res) => { res.send("홈페이지");});app..
[Node.js] Express 프레임워크와 미들웨어
·
Node.js
Express 프레임워크Express 설치npm install expressExpress 를 이용한 기본 웹 서버 코드`app.js` 에 코드 작성const express = require("express"); // Express 모듈 가져오기const app = express(); // Express 애플리케이션 생성app.get("/", (req, res) => { // GET 요청을 처리하는 라우트 정의 res.send("Hello, Express!"); // 클라이언트에게 응답 보내기});app.listen(3000, () => { // 서버 실행 및 포트 지정 console.log("서버 실행 중: http://localhost:3000"); // 콘솔에 서버 실행 로그 출력});Ex..
[Node.js] Node.js 프로젝트 npm dependencies 추가
·
Node.js
npm (Node Package Manager)npm : Node.js의 패키지 관리자로 외부 라이브러리를 설치하고 관리할 수 있음 npm dependencies 추가서버 및 템플릿 엔진 패키지 역할 express웹 서버 구축을 위한 프레임워크nunjucks템플릿 엔진 (HTML 동적 렌더링)nodemon코드 변경 시 자동 재시작 (개발 편의성 향상)npm install express nunjucks nodemon`nodemon` 실행 방법 : 터미널 창에서 `npx nodemon 파일이름` 입력`nodemon` 중지 방법 : 터미널 창에서 `ctrl + c` 키 입력환경 설정 및 미들웨어 패키지 역할 dotenv`.env` 파일을 이용한 환경 변수 설정cookie-parser쿠키를 쉽게 다룰 수 있..
[Node.js] Node.js 프로젝트 생성과 package.json 파일
·
Node.js
Node.js 설치 [Node.js] Node.js 설치 및 실행Node.jsNode.js : Chrome V8 엔진 기반의 JavaScript 런타임 환경으로 브라우저 외에서도 JavaScript 실행 가능비동기 (Asynchronous) 및 이벤트 기반(Event-driven) 프로그래밍 지원싱글 스레드 (Single Thread) : 한 개의jackinquantico.tistory.com 프로젝트 생성프로젝트 디렉토리 생성파일탐색기에서 디렉토리 생성파일탐색기를 통해 프로젝트 디렉토리를 생성하려는 폴더로 이동하여 폴더 생성명령 프롬프트에서 디렉토리 생성명령 프롬프트 (cmd) 창을 통해 폴더 생성# 디렉토리 이동cd "폴더를 생성할 경로"# 디렉토리 생성mkdir "프로젝트 디렉토리 명"프로젝트 디렉..
[Node.js] Node.js 의 논블로킹 싱글 스레드
·
Node.js
Node.js [Node.js] Node.js 설치 및 실행Node.jsNode.js : Chrome V8 엔진 기반의 JavaScript 런타임 환경으로 브라우저 외에서도 JavaScript 실행 가능비동기 (Asynchronous) 및 이벤트 기반(Event-driven) 프로그래밍 지원싱글 스레드 (Single Thread) : 한 개의jackinquantico.tistory.com 논블로킹 I/O논블로킹 I/O : 기본적으로 JS 코드는 동시에 실행될 수 없지만 I/O 작업은 동시 처리 가능> 노드는 논블로킹 방식으로 처리하는 방법 제공> 노드는 I/O 작업을 백그라운드로 넘겨 동시에 처리 논 블로킹 : 이전 작업이 완료될 때까지 대기하지 않고 다음 작업을 수행하는 것ex ) `setTimeou..
[Node.js] Node.js 와 이벤트 기반
·
Node.js
Node.js [Node.js] Node.js 설치 및 실행Node.jsNode.js : Chrome V8 엔진 기반의 JavaScript 런타임 환경으로 브라우저 외에서도 JavaScript 실행 가능비동기 (Asynchronous) 및 이벤트 기반(Event-driven) 프로그래밍 지원싱글 스레드 (Single Thread) : 한 개의jackinquantico.tistory.com 이벤트 기반노드 : V8 엔진과 libuv 라는 라이브러리를 사용libuv 라이브러리 : 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델 구현이벤트 기반 : 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식이벤트가 발생 시 이벤트 리스너에 등록해둔 콜백 함수를 호출 후 다음 이벤트가 발생할 때까지 대기이벤트 기반..