1. Sequelize ORM DB 연결 테스트 2. 테이블 생성 / 정의 Sequelize 를 연결하면, 자동으로 로그가 기록된다. 테이블이 없다면 자동으로 생성시킨다는 로그를 볼 수 있다 🙂 로그를 남길 필요가 없다면 Sequelize...
Continue reading...nodejs
노드서버 DB 연결하기 / Dwitter DB 연동
1. Mysql 다운로드 운영체제에 맞는 mysql 서버, workbench 를 다운로드 받고, db 스키마를 작성 / 테이블을 생성한다. 2. mysql2 다운로드 3. 노드서버 <> DB 연결 (dotenv 를 이용하여 config 를 따로...
Continue reading...웹 소켓(Web socket)
실시간으로 동작하는 서비스를 만들고 싶다면, 웹 소켓을 이용한다. 기존 HTTP는 클라이언트가 서버에 요청하고, 서버는 그에 해당하는 응답을 던져준다. 만약 서버에 공지사항이 생겼더라도, 클라이언트가 따로 그것에 대해 요청을 하지 않으면 서버가 클라이언트에게...
Continue reading...Dwitter – 서버 코드에서 중요한 두가지 (5)
보안성 현재의 코드에서 확인해보면, ‘jwtSecretKey’ 등 중요한 키값들이 코드내에 그대로 사용되고 있는 것을 볼 수 있다. 이것은 보안성에 문제가 된다. 보통 코드들을 코드 관리 툴(git 등)에 올리는데, 이 과정에서 이 키값들이...
Continue reading...Dwitter – 로그인 / 회원가입 Auth 구현(4)
JWT 를 이용하여 구현하기로 한다. JWT 사용 이유 서버가 RESTful api 기반 이기 때문 (즉 , http-only 쿠키를 보내주는 서버가 아닌, 다양한 클라이언트들을 위한 RESTful api) 세션 정보 저장을 위해 세션...
Continue reading...JWT (JSON Web Token)
JWT (JSON Web Token) JWT란, 2010년도에 개발되었으며 JSON을 이용하여 웹토큰을 주고받는 것을 의미한다. JWT 구성 JSON 오브젝트 베이스안에 Header, Payload, Signature 로 나누어져 있다. 여기에 사용자의 인증에 대한 모든 정보를 담는...
Continue reading...bcrypt
Bcrypt 는 패스워드를 안전하게 보관할 수 있도록 패스워드를 해싱하는 알고리즘을 의미한다. 사용자가 가입을 할 때 입력한 아이디와 패스워드를 그대로 데이터베이스에 저장하면, 제 3자가 서버에 있는 데이터베이스 정보를 읽었을 때 사용자의 아이디...
Continue reading...인증 (Authentication) ( session / cookie)
인증이란 어떤 의미일까? You are who you say you are ‘너는 너가 누구라고 말한 사람이다’ 라는 말이 있다. 인증 방법은 여러가지 이다. You know password pin-code You have mobile phone hardware...
Continue reading...Dwitter – 유효성 검사 적용 (3)
그럼 토이프로젝트 Dwitter에도 간단하게 유효성 검사를 적용해보자 👍 /server/router/tweets.js /server/middleware/validator.js 컨트롤러에서는 비즈니스 로직만을 갖고 있는게 좋고, 디펜던시를 가지고 있는 것은 좋지않으므로 라우터에서 처리하는 것이 좋다. 또한 여러 라우터를 가지고 있을 수...
Continue reading...데이터 Sanitization (살균 ? 🤔)
Sanitization 필요 이유 앞서 본 데이터 유효성 검사 이후, 데이터 sanitization 처리를 해줘야한다. 예를 들어, 위 포스팅의 최종 코드에서 아래와 같은 요청을 받으면 어떻게 될까 ? 상식적으로, request body 내의 name은...
Continue reading...