목록노드 (15)
개발스토리
시퀄라이즈 사용 MySQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리이다. 시퀄라이즈는 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다. MariaDB, PostgreSQL 등 다른 데이터베이스도 같이 쓸 수 있다. 시퀄라이즈에 필요한 sequelize와 sequelize-cli, mysql2 패키지를 설치하자. sequelize-cli는 시퀄라이즈 명령어를 실행하기 위한 패키지이고, mysql2는 MYSQL과 시퀄라이즈를 이어주는 드라이버이다. 그 다음 sequelize init 명령어를 호출한다. 그러면 config, models, migrations, seeders 폴더가 생성된다. models 폴더 안의 index.js 내용을 수정하자. models/index.js const ..
https 모듈은 웹 서버에 SSL 암호화를 추가한다. GET이나 POST 요청을 할 때 오가는 데이터를 암호화해서 중간에 다른 사람이 요청을 가로채더라도 내용을 확인할 수 없게 한다. https는 아무나 사용할 수 있는 것은 아니다. 인증서 발급을 받아야 한다. 아래 코드는 인증서가 있다는 가정하에 작성했다. const https = require('https'); const fs = require('fs'); https.createServer({ cert : fs.readFileSync('도메인 인증서 경로'), key : fs.readFileSync('도메인 비밀키 경로'), ca : [ fs.readFileSync('상위 인증서 경로..
쿠키와 세션 이해하기 클라이언트에서 보내는 요청에는 한 가지 큰 단점이 있다. 바로 누가 요청을 보내는 지 모른다는 것이다. 그래서 많은 웹 사이트들은 로그인 기능을 포함한다. 로그인을 구현하려면 쿠키와 세션에 대해 알고 있어야 한다. 로그인을 한 후에 새로고침을 해도 로그아웃이 되지 않는다. 그것은 바로 클라이언트가 서버에 우리가 누군 지 지속적으로 알려주고 있기 때문이다. 우리가 누군지 기억하기 위해 서버는 요청에 대한 응답을 할 때 쿠키라는 것을 같이 보낸다. 쿠키는 유효 기간이 있으며 키-값의 쌍이다. 서버로 부터 쿠키가 오면 웹 브라우저는 쿠키를 저장해두었다가 요청할 때마다 동봉해서 보낸다. 서버는 요청에 들어있는 쿠키를 읽어서 사용자가 누구인지 파악한다. 쿠키는 요청의 헤더에 담겨 전송된다. ..
요청과 응답 이해하기 서버는 클라이언트가 있기에 동작한다. 클라이언트에서 서버로 요청을 보내고 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에 응답을 보낸다. 따라서, 서버에는 요청을 받는 부분과 응답을 보내는 부분이 있어야 한다. 요청과 응답은 이벤트 방식이라고 생각하면 된다. 클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해두어야 한다. 이벤트 리스너를 가진 노드 서버를 만들어보자. //createServer.js const http = require('http'); http.createServer((req,res)=>{ // 어떻게 응답할지 적자. }); req 객체는 요청에 관한 정보들을, res 객체는 응답에 관한 정보를 담고 있다. 이제, 응..