개인공부 108

TIL 90일차_jwt 사용하기

JWT를 왜 사용할까? 보안 이슈 사용자가 자신의 비밀 값으로 서버에 로그인 하게 되면, 서버는 JWT를 리턴한다. 이후, 서버는 GUI로부터 받은 JWT가 유효할 경우, resouce를 사용하도록 허용한다. token을 인증 값으로 사용하게 되면 기존 쿠키/세션을 사용하는 방식보다 많은 보안 이슈를 막을 수 있으며, JWT는 쿠키를 사용하지 않기 때문에, Cross-Origin Resource Sharing (CORS) 이슈가 발생하지 않는다. 데이터 용량 JWT는 기존의 XML보다 덜 복잡하고 인코딩 된 사이즈가 작기때문에, HTTP와 HTML 환경에서 사용하기 좋다. 사용성 JSON parser는 대부분의 프로그래밍이 지원하기 때문에 XML을 사용하는 SAML 보다 만들기 쉽다. JWT 구조 JWT..

TIL 89일차_axios 정리하기

axios 사용법이 워낙 쉬워서 그냥 써오다가 나중에 정리하자 정리하자 했는데, 오늘이 그날이다!! Request method aliases axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.head(url[, config]) axios.options(url[, config]) data가 들어갈 수 있는 method (안들어가도 된다) axios.post(url[, data[, config]]) axios.put(url[, data[, config]]) axios.patch(url[, data[, config]]) 사용예제 config 인자가 들어간 get 요청 axios.get('/user', ..

TIL 88일차_ Sequelize 사용하기

sequelize의 메서드를 통해서 DB에 접근하고, sequelize-cli를 설치하여, CLI에서 모델을 생성해주거나, 스키마 적용, 마이그레이션을 할 수 있다. sequelize-cli init npm install --save-dev sequelize-cli npx sequelize-cli init 위 두 명령어를 실행하여, 마이그레이션에 필요한 폴더 4가지(config, models, migrations, seeders)를 생성해준다. 이후, 첫 모델을 생성해 주자! CLI에서 간단한 명령어로 모델을 생성할 수 있다. npx sequelize-cli model:generate --name url --attributes url:string,title:string,visits:integer mode..

TIL 87일차_ try...catch문을 사용한 예외처리

오늘은 페어프로그래밍을 하면서 try catch문을 다시 알게되서, 꼭 정리를 해야겠다는 생각을 했다. 그동안 try catch문을 꽤 사용해왔지만 항상 비동기처리를 할때에만 써왔고, 다른경우의 예외처리는 늘 조건문을 통해서 처리해왔다. 그런데 오늘 페어분이 서버쪽 로직을 작성하는데 에러가나서 테스트가 넘어가지 않자, try catch문을 사용해서 예외처리를 해주는 걸 보고 여쭤봤더니, 서버쪽 로직을 작성할 때 서버가 다운될 수 있는 경우에 try catch문을 빈번하게 사용한다고 말씀해 주셨다. 그말을 듣고 나의 우매함을 반성하며 try, catch, finally 문에 대해 정리해야겠다는 생각이 들었다. try...catch와 에러핸들링 아무리 프로그래밍에 능한 사람이더라도 에러가 있는 스크립트를 작..

TIL 86일차_쿠키와 세션

인증(authentication)을 공부하면서 배우게 되는 쿠키와 세션에 대해 정리해봤다. 특히 express-session 라이브러리를 사용하여 쿠키설정을 하는 부분은 까먹을게 분명하니까 꼭 적어놔야지! 쿠키 쿠키란??? 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 조각이다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 할 때, 저장된 데이터 조각(쿠키)를 함께 전송한다. 쿠키는 주로 두 요청이 동일한 브라우저에서 들어왔는지를 판단할 때 사용한다. 쿠키는 http의 무상태성을 상태를 가질 수 있게 만들어주기때문에, 사용자의 로그인 상태를 유지하는 등에 쓰인다. 쿠키의 동작 방식 서버에서 HTTP요청을 수신할 때, 서버는 응답과 함께 Set-Co..

TIL 85일차_Express res.json과 res.send

Express를 통해서 JSON 응답을 보낼 때, Express의 res.json 함수를 쓰기도 하고, res.send 함수를 쓰기도 하는데 이 둘의 차이가 궁금해졌다. res.json을 써도, res.send를 써도 JSON 응답을 보낼 수 있는데, 둘의 차이는 뭘까??? 둘의 함수 내부 코드를 살펴본 글이 있어서 감사히 잘 알 수 있었다. res.json res.json 소스코드의 일부는 다음과 같다. res.json = function json(obj) { var val = obj; // 생략... var app = this.app; var escape = app.get('json escape') var replacer = app.get('json replacer'); var spaces = app..