본문 바로가기

프로그래머스 풀스택 데브코스/데브코스 TIL

(59)
웹 풀사이클 데브코스 TIL 27일차 인증 vs 인가 인증 Authentication. 로그인. 사이트에 가입된 사용자라는 걸 증명 예시) 쇼핑몰 상품 구매, 마이페이지 인가 Authorization. 허가. 인증 후에 페이지 접근 권한이 있나? 예시) 관리자 / 고객 에 따라 접근할 수 있는 페이지가 다르다. 쿠키 쿠키: 서버와 클라이언트가 주고받는 정보 로그인 -> 서버가 쿠키를 구워줌 사용자 서버 쿠키를 주고받음 장점: 서버가 저장 X => 서버 저장공간 X, Stateless 하다 => RESTful 하다 단점: 보안 취약 세션 세션: 로그인이 되어있는 상태 로그인 -> 서버가 금고를 만들어서 정보 저장하고 금고 번호를 줌 사용자 서버가 번호만 가지고 대화 장점: 보안 비교적 좋다 단점: 서버가 저장 O => 서버 저장공간, Stat..
웹 풀사이클 데브코스 TIL 26일차 유효성 검사(validation) 사용자가 입력한 값의 유효성 예시를 들어보자. userId: 값이 있어야하고 숫자여야한다. 사람 name: 숫자X,문자열, 2자 이상 Express에서는 외부모듈인 "express-validator"를 사용한다. https://www.npmjs.com/package/express-validator 채널 생성에 유효성 검사 적용 const {body, validationResult} = require('express-validator') /** * * 중간 생략 */ .post( [body('userId').notEmpty().isInt().withMessage('숫자 입력 필요'), body('name').notE..
웹 풀사이클 데브코스 TIL 25일차 DB 모듈화 DB를 모듈화 해주기 위해서는 connection을 설정한 후 exports 해준다. // get the client const mysql = require('mysql2'); // create the connection to database const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'root', database: 'Youtube', dateStrings : true }); module.exports = connection 그 후 다른 모듈에서 이렇게 불러와서 사용한다. const conn = require(..
웹 풀사이클 데브코스 TIL 24일차 WorkBench mysql, mariaDB는 Mysql Workbench 라는 프로그램을 통해 GUI 접근이 가능하다. 다운로드 링크: https://dev.mysql.com/downloads/workbench/ 프로그램 설치가 되었으면 들어오는 메인 화면이다. MySQL Connections 옆에 있는 + 버튼을 눌러본다. 이와 같은 창이 뜬다. Connection Name을 원하는 이름으로 작성하고 나머지 설정은 그대로 둔다. 패스워드는 Store in Keychain을 눌러서 우리의 mariaDB 비밀번호를 입력해준다. 비밀번호를 키체인에 미리 입력하지 않고 하면 어째서인지 워크벤치가 Crash 되는 버그가 있다는 점도 참고. mariaDB에 접속한 화면이다. Schemas 탭을 눌러보면 우리가 ..
웹 풀사이클 데브코스 TIL 23일차 데이터 베이스 생성 테이블 이름은 기본적으로 복수형으로 작성권장 "Board" 스키마 생성 CREATE DATABASE Board; USE Board; 사용자 테이블 생성 CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, job VARCHAR(100), birth DATE, PRIMARY KEY (id) ); NOT NULL 은 값이 필수로 있어야 한다는 뜻. AUTO_INCREMENT 는 pk 등에 사용하는데 아이디를 자동으로 생성해준다. 마지막으로 primary key 는 id를 사용한다고 지정해준다. SHOW tables; 를 하면 생성된 테이블들이 출력되고 DESC users; 를 하면 그 테이블의 정보를..
웹 풀사이클 데브코스 TIL 22일차 데이터베이스 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체. 데이터를 구조화 하여 관리해서 데이터 중복을 막고, 효율적으로 빠른 데이터 연산이 가능하다. DBMS 데이터베이스를 운영하고 관리하기위한 시스템 SQL 데이터베이스에 연산을 요청하기 위해 사용되는 언어. 삽입, 조회, 수정, 삭제 등이 가능하다. RDBMS를 쓰는 이유 데이터 간 "관계"를 사용해서 원하는 값을 찾아낸다. 인간의 사고방식과 비슷 RDBMS PK(primary key): 기본키, 하나의 row를 유니크하게 구별할 수 있도록 해주는 키 정규화: 중복되는 데이터를 방지하기 위해 테이블을 분리. FK(foreign key): 다른 테이블의 기본키. 다른 테이블의 원하는 데이터를 얻어내기 위해 사용 데이터베이스 연관관계 테이블..
웹 풀사이클 데브코스 TIL 21일차 Node.js 에서의 라우팅이란? Request(요청)이 날아왔을 때, 원하는 경로에 따라 적절한 방향으로 경로를 안내해주는 것. URL, method 에 따라 어떤 콜백함수를 호출하는가. 기존 코드 수정 먼저 app.js 를 만들어준다. // express 모듈 셋팅 const express = require('express') const app = express() app.listen(3000) // user-demo 소환 const userRouter = require('./routes/users') // channel-demo 소환 const channelRouter = require('./routes/channels') app.use("/", userRouter) app.use("/channel..
웹 풀사이클 데브코스 TIL 20일차 빈 객체 확인하는 방법 Object.keys() for in lodash : isEmpty const obj1 = {} const obj2 = {message: "안 빔"} const num =1 const str1 = "one" const str2 = "" //문자열도 객체이다 console.log(Object.keys(obj1).length === 0) console.log(Object.keys(obj2).length === 0) console.log(Object.keys(num).length === 0) console.log(Object.keys(str1).length === 0) console.log(Object.keys(str2).length === 0) // true // false // tr..