Node.js

· Node.js
👻사용하게된 이유 "trello"와 같은 협업 웹 사이트를 만들던 중 할일을 만들 수 있는 Board 테이블에 Board 테이블 생성자가 멤버들을 초대할 수 있는 구조를 만들었다. 초대를 어떻게 구현할까 고민하다가 Board 생성자가 초대할 멤버의 메일을 적으면 그 멤버의 메일로 인증코드가 가고, 코드 입력 시 인증이 성공하며 초대받은 멤버가 Board 를 볼 수 있고, 사용할 수 있는 구조를 만들게 되었다. 이 때문에 nodemailer를 접하게 되었다. 👻사용방법 nodemailer 공식 홈페이지 / Youtube 사실 nodemailer 공식 홈페이지에 가면 예시와 함께 사용법을 자세하게 알 수 있다. https://nodemailer.com/ 추가적으로 참고한 유튜브는 다음과 같다. https:/..
· Node.js
nodemon nodemon은 node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉토리를 감시하고있다가 파일이 수정되면 자동으로 노드 애플리케이션을 재시작하는 확장 모듈이다. Node.js 개발 시 자바스크립트 파일들을 수정할 때마다 매번 ctrl +c 를 통해 node를 종료한 후 다시 실행해줘야 하는 번거로움이 있었는데 nodemon을 설치하면 재시작 없이 코드를 반영할 수 있다. nodemon 설치 npm install nodemon --save -dev : nodemon을 '개발 용도로만 사용할 것이다' 라는 의미. dev 옵션으로 local 에서만 사용한다는 것이고 package.json을 확인해보면 다른 모듈과 다르게 dependencies가 아닌 devDependencies에 ..
· Node.js
상황 쿠키에 토큰 값을 담아 백엔드 코드에서 res.cookies를 이용해 프론트엔드로 쿠키를 보내려는데 프론트엔드에서 cookie 값이 확인되지 않는 상황이 발생했다. 여러 블로그들을 확인해보며 set cookie, get cookie등 쿠키를 보내고 받는 여러가지 방법들이 있었지만 왜인지 적용이 안되는 상황이었다. 해결 일반적으로, (backend) res.cookies => (middleware) cookie-parser => (frontend) req.cookie 의 과정을 통해 req.cookie에 쿠키 값이 확인된다. 하지만 이런 과정으로만 쿠키를 보내게 되면 req.cookie에 쿠키 값이 들어가지 않는 것을 확인할 수 있다. 현재, (backend) cookie => CORS 설정 => (..
· Node.js
Access Token & Refresh Token JWT(jsonwebtoken) 모듈을 이용해 만들 수 있는 토큰이다. Access Token은 인증을 위한 JWT이며 보안을 위해 유효기간이 매우 짧다. 반면 Refresh Token 은 유효기간이 짧은 Access Token을 보완하기 위한 JWT로서 Access Token에 비해 유효기간이 상대적으로 길다. Access Token의 유효기간이 매우 짧기 때문에 Access Token을 매번 client가 발급받게 된다면 사용자 만족도가 매우 떨어질 것이고 반대로 유효기간이 너무 길게 된다면 보안에 취약해질 것이다. 이 단점을 방지하기 위해 Refresh 토큰을 함께 만들어주면 좋다. Access Token의 기간이 만료되었을 때 Refresh To..
· Node.js
Express 이용해 서버 만들기 순서 1. npm init (이 디렉토리를 하나의 패키지로 만들기 위함) 2. npm install express 3. const express = require("express"); const app = express(); app.get("/hello",(req,res)=>{ res.send("Hello Express"); }); app.listen(3000); get메서드의 콜백함수는 route handler라고도 한다. req : 클라이언트가 보낸 리퀘스트를 다룰 수 있음 res : 적절한 리스폰스를 보낼 수 있다. 이렇게 작성하게 되면 /hello라는 path에 대한 request가 오게되면 내 프로그램은 Hello Express라는 내용을 response의 bo..
· Node.js
모듈이란? 전체를 이루는 부품 하나하나를 의미한다. Node.js에서는 javascript 파일 하나가 모듈이라고 생각하면 편하다.(정확히는 조금 다르다) 이 모듈들이 모여 하나의 프로그램이 된다. 모듈파트에서 눈여겨 볼 점은 하나의 모듈에서 다른 모듈의 기능을 가져다 쓰는 것이 핵심이라는 점이다. 다른 모듈에 존재하는 함수를 사용하려면 모듈을 가져와야 하고, 모듈을 가져오는 것을 "모듈을 로드한다"고 한다. 함수 뿐만 아니라 변수와 같은 것들도 모두 가져와서 사용할 수 있다. //math-tools.js function addNum(a, b) { return a + b; } exports.add = add; 맨 마지막 줄에 있는 부분이 모듈을 내보내는 과정인데 '모듈 내부에 있는 add 함수(오른쪽 a..
· Node.js
REPL 이란? Read : 사용자가 입력한 내용을 읽고 Eval (Evaluate) : 그 결과 값을 구한 다음 Print : 결과 값을 출력하고 Loop : 이런 과정을 계속 반복하는 모드 REPL 설명 javascript에서는 어떤 코드가 결과값을 리턴하지 않으면 undefined를 return 한 것으로 간주하기 때문에 REPL 모드에서 코드를 작성했을 경우 우리가 원하는 값 외에도 undefined 값이 함께 출력되는 것을 볼 수 있다. 예를 들면 REPL 모드에서 3+5 를 치면 8이라는 값만 출력되지만 console.log("Hello World") 라던가 return 값이 없는 function 을 작성했을 때는 (출력값과 함께) undefined가 출력되는 것을 볼 수 있다. REPL 모드..
· Node.js
env란? env를 사용하는 이유? 프로젝트를 진행할 때 서버주소, DB 정보, 고유 API KEY 등 숨겨줘야 하는 정보들이 존재한다. 이러한 정보들은 민감한 정보임과 동시에 보안이 이루어져야 하는 정보들이다. 만약 이러한 정보들이 깃 오픈소스에 공개될 경우, 해킹을 당하거나 보안적인 면에서 위험할 수 있다. 이러한 문제로 dotenv 패키지를 이용하여 환경변수 파일(.env)을 외부에 만들어 접근하는 방식으로 이러한 위험을 피할 수 있다. (.env라는 외부 파일에 환경변수를 정의하여 변수를 받아오게 되면 보안과 유지보수에 용이하다) dotenv Package dotenv 설치 npm install dotenv dotenv 파일 생성 주의할 점이, env 파일은 프로젝트의 최상위 루트에 만들어주어야 ..
윤찬님
'Node.js' 카테고리의 글 목록