웹/Node.js

웹/Node.js

[Node.js] M1에서 nvm 설치하기

NVM(Node Version Manager)이란 Node.js의 버전을 관리해주는 도구이다. 이를 이용해 노드 버전별 설치/삭제를 쉽게 할 수 있으며, 여러 버전의 노드를 설치한 후 선택해서 사용할 수 있다. 0. 미리 설치해둘 것 Homebrew 텍스트 에디터(내장된 vim을 사용해도 된다) 1. brew를 이용해 nvm을 설치한다. brew install nvm 2. 설치가 끝나도 곧바로 nvm 사용이 가능하지는 않다. 설치가 끝나면 터미널에 뜨는 안내에 따르자. 먼저 디렉토리를 생성한다. mkdir ~/.nvm 자신이 사용하는 텍스트 에디터(vim, nano 등)로 .zshrc 파일을 열어준다. 나는 vscode를 이용해서 파일을 수정할 것이다. terminal이나 item에서 명령어(code)로..

웹/Node.js

[Node.js] MySQL에서 escaping을 사용하는 2가지 방법 비교

1. MySQL Escaping - escape() 함수 vs '?' 문자 대다수의 프로그래밍 언어는 SQL Injection을 방지하기 위한 모듈이나 메소드를 제공한다. mysql 모듈에선 이러한 escaping을 지원하는 다양한 방법을 제공하는데, 이 중 가장 대표적인 것이 바로 escape() 함수와 '?' 문자이다. 일반적으론 '?'문자를 이용해 query()함수의 2번째 인자로 배열을 넘겨주는 것이 일방적인 방법이다. 그러나 간혹 escape() 함수를 이용하는 경우가 있다. 어떤 이유에서 사용하는 것인지 예시를 통해 살펴보면서 정리하고자 한다. 아래는 npm-mysql 공식문서에서 발췌한 예시 코드이다. https://www.npmjs.com/package/mysql#escaping-query..

웹/Node.js

[Node.js] 비동기식 mysql을 사용하는 이유 (async/await)

Node.js에서 비동기(async)방식 mysql을 사용하는 이유를 예제와 함께 살펴보자. 1. 동기식 mysql (mysql) pool+connection을 이용한 트랜잭션 예제 (sync) var mysql = require('mysql'); var pool = mysql.createPool(...); pool.getConnection(function(err, connection) { if (err) throw err; // not connected! connection.beginTransaction(function(err) { if (err) throw err; connection.query('INSERT INTO posts SET title=?', title, function (error, re..

웹/Node.js

[Node.js] 모듈화에 사용되는 module.exports와 exports의 차이

module.exports와 exports의 차이를 살펴보던 중 쉬운 설명과 깔끔한 코드로 간단하게 설명해준 글(링크)이 있어 공부차 참고하여 포스팅하게 되었다. 1. 모듈이란? 모듈은 특정한 기능을 하는 함수나 변수들의 집합이다. 코드의 길이를 줄이고, 유지보수를 용이하게 할 수 있다는 장점이 있다. 이러한 모듈을 export하는 두 가지 방법인 module.exports와 exports의 차이점을 알아보자. 2. module.exports module.js const john = { name: "John", intro: "Hi" } module.exports = john; main.js const user = require('./module'); console.log(user); output $ no..

웹/Node.js

[Node.js] JWT: Access Token & Refresh Token 인증 구현

JWT 플로우를 작성하면서 access 토큰과 refresh 토큰에 대한 구현에 대한 많은 고민이 있었다. 좋은 글들이 많았고 이런 저런 방법을 고민하던 중, 내가 구현한 코드를 정리하고자 포스팅하게 되었다. 계속되던 삽질 끝에 깨닫게 된 것은 "JWT Access Token과 Refresh Token을 구현하는 방식은 너무나도 많다."라는 점이었다. 따라서 내가 포스팅하는 구현 방식이 절대 정답이 아니고 여러 방법 중 하나일 뿐임을 명심하길 바란다. 이번 포스팅은 간단한 JWT 소개와 시나리오, 그리고 구현으로 이어진다. 구현에 있어 세부적인 많이 생략했음을 고려하여 흐름만 이해하도록 하자. 글에 부족한 부분이 많이 있는데, 주기적으로 수정하여 살을 덧붙일 예정이다. 1. JWT란? JWT는 JSON ..

코택
'웹/Node.js' 카테고리의 글 목록