분류 전체보기 233

setTimeout(), clearTimeout()

1. setTimeout() 시간지연함수. 함수를 의도적으로 지연한 뒤 실행하고 싶을 때 사용한다. setTimeout(function() { // Code }, delay); 지연시간은 밀리세컨드 단위로 설정해야한다. (1000은 1초) *delay는 실행전 대기 시간이지만 호출 시점이 정확히 몇초 후라는 것을 보장하지 않는다. 2. 작동원리 (delay 0) 그런데 지연시간에 0을 넣거나 아무것도 넣지않아도 setTimeout함수는 다른코드가 실행된 후 마지막에 실행된다. 브라우저가 자바스크립트를 실행할 때 Call Stack(LIFO)에 넣는데 setTimeOut은 Task Queue(FIFO)에 넣음. Stack이 비워야 Queue에 있는걸 꺼내기 때문에 (아래 3번에서 설명) 지연시간으로 0초를..

Frontend/javaScript 2022.07.11

[AngularJS] $watch()

1. $watch() watch 함수는 스코프변수의 변화를 감지하는 함수이다. 2. 기본적인 형태 data값이 변화면 자동으로 watch함수가 실행된다. $scope.data = ""; $scope.$watch('data', function(newVal, oldVal){ }, true); 파라미터 1. $scope에 등록된 변수 이름 2. 콜백함수 콜백함수는 변경 후, 변경 전 값을 들고올 수 있다. 3. ture or false false : 변수의 레퍼런스 변화 체크 true : 실제 변수 값 변화 체크 (defalut) 3. 예시 만약 이런식으로 함수를 따로 작성하면 data가 변경되지 않을 때도 함수 수동으로 호출가능. $scope.data = ""; $scope.$watch('data', dat..

카테고리 없음 2022.07.11

인프런 react 강의

https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%85%B8%EB%93%9C-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EA%B8%B0%EB%B3%B8/dashboard [무료] 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 - 인프런 | 강의 이 강의를 통해서 리액트와 노드를 어떻게 사용하는지 기본적인 내용들을 배울 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 해당폴더 글은 인프런 무료강의를 들으며 정리한 것입니다! 예전강의라 지금과 다른점이 많은데 따라하면서 그런부분 수정하여 올릴 예정

Frontend/react 2022.07.07

schema.methos랑 schema.statics의 차이

methos 객체의 인스턴스를 만들어야만 사용이 가능 statics 객체의 인스턴스를 만들지 않아도 사용이 가능 const user= new User() 로 선언하고난 뒤 user.(메소드) 이런식으로 호출해야만 쓸 수 있는 것이 메소드 User.(스태틱) 이런식으로 호출할 수 있는 것이 스태틱 스태틱은 user.(스태틱)을 형태로도 호출이 가능합니다. 둘을 구분짓는 건 인스턴스가 존재해야만 기능이 원할하게 지원되는 함수인데 스태틱으로 만들어서 프로그래머의 실수로 호출을 해서 발생되는 에러를 미연에 방지 스태틱은 인스턴스와 무관하게 공용적으로 자주 쓰이는 함수가 필요할 때 쓰이는 것 https://www.inflearn.com/questions/30860 methods, statics 차이 - 인프런 |..

Frontend/react 2022.07.07

logout 기능 (로그아웃)

Client와 Server(DB)에 있는 token을 비교하여 인증 DB에서 로그아웃 하려는 유저의 토큰을 지워주면 비교했을 때 인증실패해서 로그인이 풀리는 것 1. logout route 생성 index.js app.get('/api/users/logout', auth, (req, res) => { //로그인된 상태라서 auth바로 넣어서 사용가능 User.findOneAndUpdate({ _id: req.user._id}, { token: ""}, (err, user) => { //파라미터는 find할것, update할것, 콜백 if(err) return res.json({ success: false, err}); return res.status(200).send({ success: true }) }..

Frontend/react 2022.07.07

Auth (인증/인가)기능

0. Auth 인증(Authentication) 사용자의 신원을 증명 ID와 Password로 로그인하는 과정 JWT나 Session을 이용해 인증을 유지 인가(Authorization) 특정 리소스에 접근할 수 있는 권한을 부여 페이지 이동 때마다 로그인 여부, 유저 role(권한) 체크 Cookie에서 인코딩된 Token을 Server에 가져와서 복호화. 복호화 하면 User ID가 나옴. 1. auth route 생성 index.js ///api/users user랑 관련된거 앞에 붙여주기 나중에 Router(express에서 제공)로 관련기능별로 정리 필요 const { auth } = require('../middleware/auth'); //쩜두개: 상위폴더로 app.get('/api/user..

Frontend/react 2022.07.07

로그인 기능(유저정보, 비밀번호 비교, 토큰 생성)

1. login 라우터 생성 User.findOne으로 req로 받은 email의 정보를 DB에서 찾음. index.js const express = require('express');//express안에 body-parser포함되서 따로 안써도 된다고함 const app = express(); const port = 3000 //아무 포트번호 지정 const cookieParser = require('cookie-parser'); const { User } = require('./models/User'); const config = require("./config/key") app.post('/login', (req, res) => { //라우터의 endpoint가 register // const us..

Frontend/react 2022.07.05

bcrypt 정보 암호화

암호화 하지 않고 데이터 전송시 DB관리자는 사용자의 비밀번호를 볼 수 있음. 민감정보를 암호화할 필요 있음 1. bcrypt 다운로드 npm install bcrypt --save 2. pre함수 생성 2-1. bcrypt 사이트에서 bycrpt.getSalt함수 복사 https://www.npmjs.com/package/bcrypt bcrypt A bcrypt library for NodeJS.. Latest version: 5.0.1, last published: a year ago. Start using bcrypt in your project by running `npm i bcrypt`. There are 3374 other projects in the npm registry using bcr..

Frontend/react 2022.06.26

비밀 정보 보호 (DB 계정 정보 보호)

git에 DB계정 정보를 올리면 다른 사람이 이용할 수 있기 때문에 따로 관리 필요! 1. 파일 생성 2. local 환경에서는 gitignore에 포함된 파일에 정보 작성하고, deploy 환경에서는 별도로 계정정보를 관리해야함. key.js 환경변수 별로 가져올 파일을 지정. 2-1 .dev.js (개발용) 2-1-1. gitignore 설정 2-2. prod.js (운영용) 2-2-1. heroku에서 회원가입 및 로그인 운영용은 외부에서 정보 관리 필요! https://dashboard.heroku.com/apps Heroku dashboard.heroku.com 2-2-2. create app 2-2-3. setting 텝에서 config vars 추가 여기서 Key 이름과 prod.js 에서 ..

Frontend/react 2022.06.23