Elice SW 2/TIL28 DAY 34 -TIL(2) Session Store Session 웹 서버가 클라이언트의 정보를 클라이언트별로 구분하여 서버에 저장 클라이언트 요청 시 Session ID를 사용하여 클라이언트의 정보를 다시 확인하는 기술 클라이언트가 정보를 저장하고, 요청시 정보를 보내는 Cookie와 대조적 서버는 세션을 생성하여 세션의 구분자인 Session ID를 클라이언트에 전달 클라이언트는 요청 시 session id를 함께 요청에 담아서 전송 서버는 전달받은 session id로 해당하는 세션을 찾아 클라이언트 정보를 확인 Session Store express-session 패키지를 사용하여 간한하게 session 동작을 구현 자동으로 session id를 클라이언트에 전달, session id로 클라이언트 정보 확인 express-.. 2022. 5. 21. DAY 34 - TIL(1) 회원가입 구현하기 관리자가 모든 회원의 비밀번호를 알 수 있음 -> 보안 취약점 발생 Hash는 문자열을 되돌릴 수 없는 방식으로 암호화하는 방법 Hash출력값을 이용해 사용자의 비밀번호를 알아낼 수 없음 비밀번호의 Hash값을 DB에 저장 로그인 시 전달된 비밀번호를 Hash하여 저장된 값과 비교해 로그인 처리 SHA1 - 사용법 const crypto = require('crypto'); module.exports = (password) => { const hash = crypto.createHash('sha1'); hash.update(password); return hash.digest("hex"); } hash.update() : 주어진 데이터로 해시를 업데이트하는데 사용 hasj.digest(.. 2022. 5. 21. DAY 32 - TIL 템플릿 엔진 서버에서 클라이언트로 보낼 HTML의 형태를 미리 템플릿으로 저장 동작 시에 미리 작성된 템플릿에 데이터를 넣어서 완성된 HTML 생성 템플릿 엔진은 템플릿 작성 문법과 작성된 템플릿을 HTML로 변환하는 기능을 제공 SSR 구현 방식 EJS HTML과 유사한 문법의 템플릿 엔진 Mustache 간단한 데이터 치환 정도만 제공하는 경량화된 템플릿 엔진 Pug 들여쓰기 표현식을 이용한 간략한 표기와 레이아웃 등 강력한 기능을 제공 가독성이 좋고 개발 생산성이 높음 HTML을 잘 모르더라도 문법적인 실수를 줄일 수 있음 layout, include, mixin등 강력한 기능 제공 html head title= title body h1#greeting 안녕하세요 a.link(href="/") 홈으.. 2022. 5. 20. DAY 31 - TIL Controller 기존의 코드를 다음 페이지의 모듈 형태로 구현 // index.js const express = require('express'); const router = express.Router(); const mainController = require('../controller/main'); /* GET home page. */ // router.get('/', function(req, res, next) { // res.render('index', { title: 'Express' }); // }); //controller 적용 router.get('/',mainController.mainscreen); module.exports = router; // ../controller/main... 2022. 5. 19. 이전 1 2 3 4 ··· 7 다음