일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 탐욕기법
- node
- 인터럽트
- 백트래킹
- 병행제어
- 컴퓨터보안
- 자바스크립트
- 디비
- 보안
- API문서
- 컴퓨터 보안
- rest docs
- 운영체제
- 데이터베이스
- DATABASE
- node.js
- AWS
- 백준
- IT
- 노드
- 스프링부트
- S3
- ES6
- DB
- 컴퓨터
- access control
- OS
- 알고리즘
- 되추적
- NEST
- Today
- Total
목록node.js (11)
개발스토리
JWT(JSON Web Token) JSON 형식의 데이터를 저장하는 토큰 JWT는 다음과 같이 세 부분으로 구성되어 있다. 헤더 : 토큰 종류와 해시 알고리즘 정보가 들어있다. 페이로드 : 토큰의 내용물이 인코딩된 부분 시그니처 : 일련의 문자열이며, 시그니처를 통해 토큰이 변조되었는지 여부를 확인할 수 있다. 시그니처는 JWT 비밀 키로 만들어 진다. 이 비밀 키가 노출되면 JWT 토큰을 위조할 수 있으므로 비밀 키를 철저하게 숨겨야 한다. JWT에는 민감한 내용을 넣으면 안된다. 내용을 볼 수 있기 때문이다. 내용이 노출되는 토큰을 왜 사용할까? 모순적이지만 내용이 들어있기 때문이다. 변조한 토큰은 시그니처를 비밀 키를 통해 검사할 때 들통이 난다. 변조할 수 없으므로 내용물이 바뀌지 않았는지 걱정..
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 객체는 응답에 관한 정보를 담고 있다. 이제, 응..
fs 모듈은 파일 시스템에 접근하는 모듈이다. 즉, 파일을 생성하거나 삭제하고, 읽거나 쓸 수 있다. 폴더도 만들거나 지울 수 있다. //readme.txt 안녕하세용 //readFile.js const fs = require('fs'); fs.readFile('./readme.txt',(err,data)=>{ if(err){ throw err; } console.log(data.toString()); //안녕하세용 }) fs 모듈을 불러온 뒤 읽을 파일의 경로를 지정한다. 파일의 경로는 node 명령어를 실행하는 콘솔 기준이라는 점에 유의하자. fs는 기본적으로 콜백 형식의 모듈이므로 실무에서 사용하기 불편하다. 따라서 fs 모듈을 프로미스 형식으로 바꿔주는 방법을 사용한다. // readFilePro..