본문 바로가기

분류 전체보기280

[220303] npm과 jwt을 활용해서 로그인 확인 기능 만들기 [목록] 1. npm 명령어로 서버 시작하기 2. 코드를 자동으로 갱신해주는 nodemon 3. 로그인시 jwt 생성하기 4. 로그인 확인을 위해 쿠키에서 jwt 정보 추출하기 5. try/catch문을 통해 응답코드 짜기 1. npm 명령어로 서버 시작하기 서버를 시작하는 node server의 의미 node로 된 명령어를 쓸건데, server.js파일을 실행할거란 명령문. 명령문을 이용하면 다른 명령어를 사용해서 서버를 시작할 수 있다. npm run start npm 스크립트 안에 있는 start 명령어를 run(실행)할게. start 명령어는 node server과 연결되어있기때문에 결과적으로 서버가 시작된다. 2. 서버를 자동적으로 갱신해주는 nodemon 서버를 껐다 켜는 것을 반복하지 않아도.. 2022. 3. 3.
[220302] JWT란? JWT 만드는법. JWT(Jason Web Token)란? 1) 토큰이란? 1-1) 일련의 문자열을 구분할 수 있는 단위이자, 시스템에서 보안 객체의 접근 관리에 사용되는 객체 또는 장치다. 1-2) 토큰은 크게 접근(access) 토큰, 보안(security) 토큰, 세션(session) 토큰 등으로 분류할 수 있다. 1-3) 접근 토큰(access token)이 가장 많이 사용되는 토큰 형식으로 시스템이나 소프트웨어에서 어떤 특정한 기능이나 데이터에 접근하는 대상에게 권한을 부여하는 데 사용된다. 2) JWT이란? 사용하고 싶은 정보를 객체에 담아서 해시로 들고, 그 해시값도 같은 객체에 담은 것. 즉, 필요한 정보를 자체적으로 지니고 있어서 자가수용적인 특성을 가졌다. 자가수용적이므로 두 개체에서 전달되기 쉽다. h.. 2022. 3. 2.
[220302] 암호화 (buffer, hash, salt) Buffer란? 어떤 텍스트를 저장하는 비트를 16진수로 표현한 것을 담는 것 ingoo의 16진수 아스키 코드값은 69 6e 67 6f 6f 버퍼에 텍스트를 담은 값을 확인하면 아스키 코드값과 같이 나온것을 확인할 수 있다. const name = 'ingoo' const buf = Buffer.from(name) console.log(buf) //출력 // 총 6바이트 사용중 모든 프로그램은 데이터를 조작하기위해서 버퍼를 가지고있다. 그렇기때문에 브라우저에서 사용하는 자바스크립트에는 버퍼가 없고, 자바스크립트에서 분리되어 나왔지만 컴퓨터를 조작하기 위해서 만들어진 Node.js에는 버퍼가 있다. 근데 16진수는 길이가 길어서 데이터를 많이 차지해 가성비가 안 좋다. 대신해서 사용하는게 64진수. co.. 2022. 3. 2.
[220129] promise를 활용한 자동차 레이싱 게임 [ 목표 ] 세 대의 차를 아반떼>소나타>제네시스 순서대로 출발시킨다. 출발할때 GO!라는 텍스트를 표시한다. 도착할때 END!라는 텍스트를 표시한다. 한대의 차가 출발하고 도착하고나서 다음 차가 출발하게 한다. 3대의 차가 도착하고나면 경기끝!이란 텍스트를 표시한다. Promise와 콜백함수 const 아반떼 = new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve('아반떼 GO!'), 1000}) }) 아반떼.then( data => { console.log(data) console.log('아반떼 END') }) --------------------------------------------------------------- //출력 아반떼 GO! .. 2022. 2. 27.
[220221] sql 오류모음, 피드백 [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 서버가 클라이언트에 둘 이상의 응답을 보내려고 할 때 발생한다. 주어진 클라이언트 요청에 대해 서버가 이전에 응답 (요청 된 리소스가 있는 성공응답 또는 잘못된 요청에 대한 오류 응답)을 클라이언트로 보냈고, 이제 예기치 않게 다른 응답을 보내려고한다는 것입니다. (cannot lock ref 'refs/heads/hyunjin/join': 'refs/heads/hyunjin' exists; cannot create 'refs/heads/hyunjin/join') 깃헙 오류 (뭐 임마 뭔데 뭐.) 구글번역 :(ref 'refs/heads/hyunjin/join'을 잠.. 2022. 2. 22.
[220216] DB와 서버를 연결해주는 Connection Pool DB와 연결되어있는지 체크하는 코드 SHOW STATUS LIKE 'Threads_connected'; 너무 연결이 많이 되면 터짐. 그래서 사용하지 않으면 컴퓨터 자원(로직?)을 반환하기 위해 연결을 끊는 종료코드가 존재함. //연결 샘플 코드 const mysql = require('mysql') // 연결 생성 let connection = mysql.createConnection({ host:'127.0.0.1', user:'hancoco', password:'0000', database:'sample' }) // 연결시작 connection.connect((err)=>{ if (err) throw err; // 여기 함수종료 console.log('socket open') // 실행됨. }) .. 2022. 2. 21.
[220221] nvm이 맥북 m1 칩에 설치되지 않을때. 라이브러리나 웹템플릿을 처음 설치해봐서 여기저기에 설치하고 지우고 들어내는걸 반복한 결과, 터미널에서 알 수 없게 충돌을 일으키거나 에러가 터지는 대참사가 일어나서 맥북을 초기화했다. 그리고 왜인지 모르게 처음에 설치했던 방법으로 nvm이 설치가 안되는 미친 상황이 일어났다. 미래의 나를 위해서 작성하는 게시물... 울지말고 이거 보고 재설치해라 나새기. 1) 공식 nvm 깃헙 $ brew install nvm trouble shooting 뜨는거 잘 보고 설치 먼저 한 후에, 공식 깃헙가서 바꿀 수 있는거 먼저 바꿔놓기 ( 공식깃헙 : https://github.com/nvm-sh/nvm#install--update-script ) 나는 trouble shooting에서 다음 세 줄이 떠서 따로 설치함.. 2022. 2. 21.
[220216] Mysql 최초 설치 / 사용할 수 있게 세팅하기 1. mysql 최초 설치 sudo brew install mysql //이게 안되면 brew install mysql //이거 입력 brew services start mysql sudo mysql_secure_installation 마지막 코드까지 치고나면 질문이 총 5개 나오는데 다음 키를 누르면 된다. 1. mysqul 초기 비밀번호 없게 enter 입력 2. root 계정 패스워드 설정 y 입력 : 작성후 적어놓고 기억하기 3. 익명사용자 y 입력 4. 원격접속 권한 y 입력 5. test db 삭제 y 입력 2. mysql 시작하기 user와 root와 계정에 관한 간단한 관계도 방 안에 있는 가구나 소품은 계정이 갖고있는 데이터. 데이터 별로 다른 데이터를 가질 수 있다. 최고관리자인 roo.. 2022. 2. 21.
맥북 인텔칩/M1칩에서 Mysql 완전 삭제 후 재설치 하기 mysql을 설치한 후에 연산을 할때마다 오류를 빵빵 터트리길래 mysql을 초기화 시키고 다시 시작하려고했다. 비밀번호를 수정하는 구간에서 갑자기 코드가 에러를 띄우더니, 내 손에 쥐어진 오류코드. ALTER USER root@‘%’ IDENTIFIED WITH mysql_native_password BY root1; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%’ IDENTIFIED WITH mysql_native_password BY root1' at line 1 해석.. 2022. 2. 18.
[220214] Git에 파일을 연결해 사용할때 필요한 명령어 Project 폴더란? 현재 작업하고 있는 폴더를 말함. 내가 작업할 수 있는 공간이며 작업하는 특정한 것이 들어있는 공간이다. root directory 현재 작업하고 있는 최상위 폴더를 말한다. 예) C:\Users\pc-003\Document\workspace\leacur 폴더 leacur에서 git init환경을 선언하고 파일을 git으로 관리하고있다. 이 때, 루트 다이렉토리는 leacure라고 한다. leacur 폴더에서 src 파일을 만들었다면 경로는 leacur\src가 될 것이다. 이 상태에서도 루트 다이렉토리를 가라고하면 역시 leacure로 가야한다. gitgraph branch관리에 도움을 주는 확장프로그램이다. 여태 commit을 할때 남겨놨던 메모나 어디서 merge했는지, br.. 2022. 2. 17.