일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cors
- 웹 스크래핑(크롤링)
- 위키백과
- 3주차
- 개발일지
- JWT
- node winston
- OpenAPI
- 노드 윈스턴
- 5주차
- NoSQL
- Node.js
- 부트스트랩
- HTTPS
- 스파르타코딩클럽
- SQL
- MongoDB
- Sequelize
- post
- nginx
- 항해99
- 트랜잭션
- db
- 2주차
- 비동기
- 1주차
- Transaction
- 숙제
- Get
- 4주차
- Today
- Total
목록
728x90
분류 전체보기 (110)
얼음꽃의 일지
Winston 이란? Node.js 에서 로깅을 위하 라이브러리라고 보시면됩니다. 물론, pm2에 있는 log를 보는 방식을 app.js 에서 인위적으로 바꾸는 법도 있지만, 이러한 라이브러리를 사용하게되면 다양한 설정 및 유연한 로깅 레벨을 제공하기에 좀 더 쉽고 이쁘게 기록,관리가 가능합니다. Winston 사용법 npm install winston const winston = require('winston'); // 사용자 정의된 로그 포맷 설정 const myFormat = winston.format.printf(({ level, message, timestamp }) => { return `${timestamp} [${level.toUpperCase()}]: ${message}`; }); // ..
1. sudo vi(vim) ~/.bashrc 2. 안에 다음 내용을 추가 parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ " 3. 다 닫고 다시 시작 ( source ~/.bashrc) 4. 그럼 다시 켰을때 현재 브랜츠가 어디있는지 확인 가능합니다. 참고 내용 https://siyoon210.tistory.com/7 리눅스 터미널에서 git 브랜치이름 항상 표시하게 하기 초보개발자가 할 수있는 가장 끔찍한 실수 중에 하나는 협업 중인 브랜치(branc..
기본적으로 api를 만들 때 파라미터를 많이 붙일 수가 있는데, 실제로 이 길이는 제한이 없습니다. 그러나 실제로 api를 연결을 하여 프론트에서 호출하게 되면 포스트맨(혹은 썬더클라이언트)에서 호출했을때와는 다르게 호출이 안되고 html 형식으로 403 Forbidden 에러가 발생합니다. 그 이유는 크롬, IE, Edge 등 각 웹 브라우저 안에 적용되는 URL 주소의 길이가 정해져있습니다. 보통은 그렇게 길게 사용은 안하지만, 여러 파라미터를 진짜 길게 사용하게 되는 경우 저 범위를 넘어가게되면 해당하는 웹브라우저 장비에서 막혀버릴 가능성이 있습니다. api 만들때 어느 정도까지 잡아서 진행할지 체크를 하고 만약 GET 형식에서 파라미터를 더 이상 붙이기 힘들다고 생각이 들때는 POST 형식으로 바..
html에 전체에서 img 태그 안에 있는 src 값들만 가져와야 하는 상황일때 사용된 코드입니다. const imgSrcReg = /(]*src\s*=\s*[\"']?([^>\"']+)[\"']?[^>]*>)/g; const regImg = []; let match = imgSrcReg.exec(내용); while (match !== null) { regImg.push(match[2]); match = imgSrcReg.exec(내용); } 정규식은 이미지 태그만 찾는 정규식인데 img 와 src 사이에 다른 여러 옵션이 존재 할 수 있기 때문에 그 값들을 다 포함해서 찾아오는 정규 식입니다. 그리고 exec 돌렸을때는 match안에 배열이 나오는데 chatgpt 같은 경우에는 match[1]에 있다고..
* 엑셀파일은 xlsx 형식 이어야 합니다. * multer를 이용하는건 스토리지에 저장이 아닌 임시로 넣어두고 불러오기 입니다. 1. 설치 -> npm install express multer xlsx 2. 코드 작성 const express = require('express'); const multer = require('multer'); const xlsx = require('xlsx'); const app = express(); const port = 3000; // 파일을 메모리에 저장하는 storage 설정 const storage = multer.memoryStorage(); const upload = multer({ storage: storage }); // 라우트 컨트롤러 설정 const..
1. 터미널에서 ssh -keygen -t ed25519 -c 이메일 주소로 ssh 키를 만든다. 2. 1번을 하게되면 id_ed25519, id_ed25519.pub가 생성이 된다. 3. pub 키를 열어서 내용을 복사한다 4. bitbucket.org 에서 로그인후 오른쪽 위 톱니바퀴를 누른다. 5. 톱니바퀴를 누르면 Personal settings이 존재하므로 누른다. 6. 누르고 들어가서 왼쪽 목록에 SSH Keys 를 누른다. 7. Add Key를 눌러서 아까 복사한 Key를 넣는다. 8. 저장하면 이제 연결이 되므로 이전에 bitbucket을 쓴 적이 있으면 git clone해서 내용을 복사해서 사용하면된다.
보통 서버에 올려서 GitBash, Putty 등 서버 로그를 확인하게 되면 그냥 단순히 api가 실행되는것만 확인 할 수 있는데요. 이걸 좀 더 자세하게 보고싶다라고 하면 사용하고 있는 메인 js (보통은 app.js) 에다가 api가 호출하기 전에 전체 호출을 하나 만들어주는 것입니다. app.use((req, res, next) => { const time = new Date().toLocaleString(); const message = `request IP: ${Ip} / ${time}`; console.log( '----------------------------------------------------------------------', ); console.log(message); next..
* access, refresh 가 둘다 있다고 가정 * 로그인 이후 access 가 만료가 되었을때 가정 * access, refresh 둘 다 올바른 값이라고 가정 0. access, refresh가 둘 다 있는지 체크 1. access의 만료 여부 체크 2. access가 만료 됐을때 refresh 만료 여부 체크 2-1. refresh가 만료가 안됐다면 access 새로 생성 2-2. refresh가 만료됐다면 처음부터 다시 로그인 3. access가 만료가 안됐을때 다시 타는 경우은 exception 혹은 아무 코드 안타게 처리 위의 내용이 기본 베이스로 유지하며 여기서 session 값 체크, redis쓰면 redis값 체크 등 추가적인 값 체크를 넣으면 됩니다.