728x90 반응형 SMALL nodejs16 [Node.js] 노드제이에스 - 토큰을 활용해 인증하기 Do it! Node.js 프로그래밍 입문 10일차 입니다. 토큰 방식 세션은 서버에 저장되어 있으면서 클라이언트에 있는 세션 ID와 비교해서 사용자를 처리했습니다. 반면에 토큰에는 사용자 정보를 비롯해 위조를 막는 서명에 이르기까지 인증할 때 필요한 모든 정보가 포함되어 있습니다. 특정 서버에 저장하는 것이 아니므로 서버 간에 공유할 수도 있습니다. 토큰을 사용하는 인증 방식은 상태가 없으므로 서버에서 사용자 상태를 저장하지 않습니다. 그 대신 토큰 안에 사용자를 증명하는 내용이 포함됩니다. 토큰 방식을 사용하는 이유 쿠키와 세션에서는 서버에 세션을 저장해 놓고 상태가 없는 http 프로토콜을 마치 상태가 있는 것처럼 사용합니다. 하지만 이 방법은 세션이 저장공간을 차지 한다는 단점이 있습니다. 이에 .. 2024. 2. 14. [Node.js] 노드제이에스 - cookie-parser 모듈 Do it! Node.js 프로그래밍 입문 10일차 입니다. 쿠키와 세션을 활용할 때 사용하는 모듈 npm install cookie-parser npm install express-session connect-mongo 명령어로 모듈 설치 쿠키 연습 const express = require("express") const cookieParser = require("cookie-parser") const app = express() app.use(cookieParser()) // cookie-parser을 미들웨어로 사용하겠다는 의미 app.get("/", (req, res) => { res.cookie("Kim", "1234", {httpOnly: true}) // res.cookie(name, val.. 2024. 2. 14. [Node.js] 노드제이에스 - 쿠키와 세션 Do it! Node.js 프로그래밍 입문 10일차 입니다. 쿠키와 세션 http 프로토콜의 가장 큰 특징은 상태가 없다는 것입니다. 이것의 의미는 서버 입장에서 GET 요청을 보낸 사용자와 POST 요청을 보낸 사용자가 같은 사람이라는 것을 알 수 없다는 것입니다. 요청을 보내고 응답이 끝나면 http 프로토콜이 클라이언트와 서버 사이의 연결을 끊어 버리기 때문입니다. http 연결 상태가 계속 유지되지 않으므로 이런것을 상태가 없다, 즉 stateless라고 합니다. 이러한 문제를 해결하기 위해 쿠키와 세션이 필요합니다. 쿠키를 이용해 사용자 식별 쿠키는 웹 브라우저를 이용할 때 사용자 컴퓨터에 저장되는 정보입니다. 쿠키는 사용자가 웹 사이트에 접속했을 때 컴퓨터에 다운로드되어 브라우저에 저장되는 작.. 2024. 2. 14. [Node.js] 노드제이에스 - 폼에서 라우트 처리 Do it! Node.js프로그래밍 입문 9일차입니다. 폼 폼은 웹 문서에서 사용자 입력을 받을 수 있는 형태를 가리키는 용어입니다. Login Form, Order Form, ... name 속성은 필수! 프론트엔드에서 폼을 다룰 때는 class, id 속성만 있어도 됩니다. 하지만 서버에서 폼 필드의 값을 인식할 때는 name 속성을 사용하므로 없다면 반드시 추가해야 합니다. 폼의 요청 방식은 GET과 POST뿐 입니다. 폼을 통해 정보를 서버로 보낼 때 사용할 수 있는 요청 방식은 GET, POST 뿐입니다. 이때 GET 방식에서는 주소 URL에 정보를 함께 넣어서 보내고, POST방식에서는 요청 본문, 즉 req.body에 정보를 담아서 보냅니다. PUT, DELETE 방식은 AJAX(Asynch.. 2024. 2. 13. [Node.js] 노드제이에스 - 템플릿 엔진 Do it! Node.js 프로그래밍입문 9일차 입니다. 템플릿 엔진 대부분의 웹 사이트나 애플리케이션은 사용자의 동작에 반응해서 서버에서 자료를 가져와 바뀐 내용을 보여주어야 합니다. 이렇게 내용이 동작으로 바뀌는 것을 처리할 때 사용하는 것이 템플릿 엔진입니다. 템플릿 엔진은 EJS, 퍼그, 핸들바 등이 있습니다. 템플릿 파일과 템플릿 엔진 데이터베이스에서 가져온 데이터 중 어떤 값을 어느 위치에 넣을지 미리 틀을 만들어 놓은 것을 템플릿 파일이라고 합니다. 여러 템플릿 파일을 만들고 데이터베이스에서 가져온 동적인 데이터를 템플릿 파일에 연결해 주는 역할을 하는 것이 템플릿 엔진입니다. EJS 기본 문법 뷰 엔진 설정하기 npm install ejs를 설치해줍니다. app.set(key, value).. 2024. 2. 13. [Node.js] 노드제이에스 - CRUD 코드 작성 Do it! Node.js 프로그래밍 입문 8일차 입니다. DB모델에서 사용하는 함수 controllers/contactController.js 아래 코드 추가 const Contact = require("../models/contactModel") // DB모델 연결 create() DB에 새로운 도큐먼트를 생성합니다. Contact.create({name, email, phone}) find() 지정한 조건에 맞는 도큐먼트를 찾습니다. 조건을 따로 지정하지 않으면 모든 도큐먼트를 찾습니다. Contact.find() updateOne, updateMany updateOne는 조건에 맞는 첫 번째 도큐먼트만 업데이트하고 updateMany는 조건에 맞는 모든 도큐먼트를 업데이트합니다. Contact.u.. 2024. 2. 10. [Node.js] 노드제이에스 - 컨트롤러 작성 Do it! Node.js 프로그래밍 입문 8일차 입니다. 디자인 아키텍처 코드를 읽기 쉽고 관리하기 편하도록 기능이나 역할에 따라 여러 파일로 나눈 뒤 연결해서 사용하자는 것을 디자인 아키텍처라고 합니다. MVC 패턴 Model, View, Controller을 합해서 MVC 패턴이라고 합니다. 이렇게 3개로 나눠서 코딩하면 실제 처리 로직과 데이터베이스, 인터페이스 부분이 서로 영향을 받지 않습니다. 영역 설명 모델 - 애플리케이션에서 처리할 대상 - 데이터베이스를 통해 자료를 저장하거나 검색, 수정하는 함수들이 모델에 해당 - 사용자에게 어떻게 보일지는 신경 쓰지 않고 처리할 대상에 집중 뷰 - 컨트롤러나 모델의 처리 결과를 시각적으로 보여줍니다. - 흔히 사이트나 애플리케이션에 표시되는 화면을 만.. 2024. 2. 10. [Node.js] 노드제이에스 - CRUD를 위한 API 작성 Do it! Node.js 프로그래밍 입문 8일차 입니다. API와 애플리케이션 애플리케이션 특정 기능을 제공하는 프로그램입니다. 애플리케이션은 그 자체로 완전한 소프트웨어입니다. 웹 사이트 자체로 완성된 기능을 제공하는 것이 애플리케이션입니다. API란 API는 Application Programming Interface의 줄임말입니다. 애플리케이션 간에 자료를 주고받으면서 특정 기능을 실행합니다. API는 둘 이상의 컴퓨터 혹은 애플리케이션 간에 자료를 어떻게 주고받는지를 지정하는 역할을 합니다. RESTful API http 프로토콜은 클라이언트와 서버 사이에 자료를 주고받을 때 사용하는 규칙이라고 합니다. http 프로토콜을 활용해서 자료를 주고받으려면 약속된 구조가 필요한데 이것이 바로 REST.. 2024. 2. 10. [Node.js] 노드제이에스 - 몽고DB Do it! Node.js 프로그래밍 입문 7일차 입니다. 데이터베이스 수 많은 자료들을 저장해서 정리하고 관리하는 방법이 필요한데 이때 사용하는 것이 데이터베이스 입니다. 데이터베이스에 새로운 자료를 추가하거나 데이터베이스에 있는 자료를 가져와 브라우저 창에 보여주는 것을 웹 개발이라고 할 수 있습니다. 데이터베이스의 종류 관계형 데이터베이스 : 저장할 자료의 구조를 행과 열로 구분해서 표 형태로 관리합니다. SQL언어를 사용합니다. NoSQL 데이터베이스 : NoSQL은 SQL을 사용하지 않는다는 의미입니다. NoSQL데이터베이스는 문서 형태로 저장합니다. NoSQL 데이터베이스의 장점 자료를 구조변경하기가 쉽습니다. 자료형식이 JSON이거나 JSON과 비슷한 형태여서 DB언어를 따로 공부하지 않아도.. 2024. 2. 9. 이전 1 2 다음 728x90 반응형 LIST