2024/11 9

jwt / interceptor, module, middleware를 활용한 jwt플로우

Introduction이전 jwt포스팅 시리즈중 access토큰까지는 그래도 코드를 봐줄만했으나 refresh토큰이 추가된 순간 아주 코드가 더럽고 불결해졌다. 이걸 깔끔하게 하기위해서 jwt토큰로직을 interceptor, module, middleware을 활용해서 깔끔하고 재사용성있게 고쳐보자. Interceptor일단 우리가 흔히 쓰는 axios요청을 보자. axios.get("/api/test").then((res) => { console.log(res.data.message); }).catch((err)=>{ console.log(err.message) });내가 지금까지 계속 사용했던 axios요청이다.근데 /api요청으로 보내는 axios를 아예 변수로 선..

jwt / refresh token

Introductionjson web token 보안방법에서 refresh token에 대해서 차근차근 포스팅하겠다. 처음부터 와라라락 써버리면 읽는 사람들은 머리가 터질것이기 때문.공부 목적이길래 코드가 매우 더러울것이다. 누군가가 jwt인증을 쓰고싶어서 이 포스팅을 본 후, 이 코드를 복붙해 가지 말길 바란다. 원래 이렇게 안쓰니까. 제발 # refresh token은 어떻게 생겼을까?난 처음에는 access token과 refresh token은 다르게 생긴줄 알았다.하지만 두개는 각기 다른 토큰일뿐 생성 및 방식 자체는 아예 똑같다.const jwt = require("jsonwebtoken");const dotenv = require("dotenv");dotenv.config();const ma..

websocket

Introduction사실 개발하면서 많이들 배우는 웹소켓인데 난 남들과는 다르게 배워왔고 내가 만들려고 목표했던 서비스는 웹소켓 기능이 필요가 없었다. 근데 이번에 개인 프로젝트를 하면서 기능개발하는데 필요한것 같아서 배우게됨.쉽다고해야할지 어렵다고 해야할지.. 암튼 배워두면 좋은 내용임.   # 우리가 흔히 아는 api통신우리가 프론트랑 백을 개발했다고 하고 프론트서버에서 클라이언트가 받은 웹사이트가 렌더링되고 그 클라이언트는 백단으로 각각 기능마다 api요청을 보낸다. 해당 api요청을 받으면 백단 서버는 그에 맞는 응답을 해준다.1요청 1응답. 이게 바로 우리가 아는 기본적인 api요청 플로우? 원칙? 같은거다.  # 만약 이런기능을 개발해보려고 한다면?프론트단 백단 전부 구현을 해본사람이라면 알..

javaScript/nodeJs 2024.11.09

async await / Synchronous Processing & Asynchronous Processing

Introductionasync / await 함수를 araboza# 일반함수와 다른 점const fuc = () => {};const asyncFuc = async () => {};console.log(fuc);console.log("일반함수는 ", fuc(), "를 리턴해");console.log(asyncFuc);console.log("async함수는 ", asyncFuc(), "를 리턴해");이 코드를 실행해보자.일반함수 fuc이랑 asyncFuc이라는 async함수를 만들어줬고 콘솔로 각각 함수객체와 호출후 리턴되는 값을 출력해봤다.일반함수는 함수객체 출력값이 function으로 나오고 리턴값은 없으니까 undefined를 출력한다.하지만 async함수는 함수객체가 AsyncFunction으로 ..

javaScript/concept 2024.11.08

promise / Synchronous Processing & Asynchronous Processing

Introduction사실 나도 jsdeepdive를 뒷쪽은 못읽었다. 지금 1년전에 600페이지까지 10회독한게 마지막 ㅠ암튼 그래서 아직 개념은 좀 부족하지만, promise로 동기 비동기 처리는 자주해봤고 얕게는 알기때문에 단순히 동기 비동기처리하는 방법을 포스팅하려고한다.ㅅㅂ급한불이 너무많아서 딥다이브 언제 다시 공부할수 있을지 ㅠ # 심심해서 뜯어봄console.log(Promise);nodejs에서 Promise 예약어를 콘솔로 출력해보면 Function이라고 나옴좀 더 자세히 보기 위해서 브라우저 개발자도구에서 dir해보면이렇게 Promise생성자함수객체를 대략적으로나마 볼 수 있는데, 파라미터로 받는 resolve와 reject도 들어있고프로토타입에 밥먹듯 쓰는 then, catch, fi..

javaScript/concept 2024.11.06

Synchronous Processing & Asynchronous Processing

Introduction예전에 비동기처리를 처음 배울때 너무 이해가안됐다.단순하게 이 함수 실행하고 완료되면 다음 함수 실행되게 하고싶은 내맘을 몰라주는 js였었음.구글링을 해도 큐 스택이니 뭐니 저러니 자라니 고라니...지금이야 밥먹듯이 휘갈겨대는 코드지만 나같은 코찔이들을 위해 동기 비동기처리를 이해할 수 있게 최대한 쉽게 포스팅을 해보겠음.환경은 nodejs임# 1setTimeout함수는 js에서 기본적으로 제공해주는 전역함수다.console.log(global)이걸 쳐보면(브라우저 js에서는 window치샘)전역함수로 저렇게있다. api요청할떄 기본으로 들어있는 fetch도 저기 있어서 기본적으로 js에서 호출할수 있는거임 그럼 이 함수는 어떻게 쓸까?setTimeout(여기에 함수가 들어감!, 여..

javaScript/concept 2024.11.06

CKA시험 소개 및 공부방법, 자세한 후기

이 시험 후기는 2024/11/25 이전에 시험 볼 사람들에게 맞는 후기임.  Certified Kubernetes Administrator (CKA) Program Changes - Linux Foundation - EducationThank you for your interest in Linux Foundation training and certification. We think we can better serve you from our China Training site. To access this site please click below. 感谢您对Linux Foundation培训的关注。为了更好地为您服务,training.linuxfoundation.org2024/11/25일 이후로 CKA가 업데..

k8s/CKA 2024.11.03

Lightning Lab - 1

IntroductionLightning Lab - 1 문제 풀어보자.Summary export samp="--dry-run=client -o yaml"export now="--force --grace-period 0" $samp, $now붙은건 이 명령어로 약어만든거니까 주의  Kubectl Reference Docs kubernetes.io   # 1클러스터 업그레이드 하란다.클러스터 업그레이드는 1. controlplane - kubeadm, kubelet, kubectl세개 업그레이드2. worker node - kubelet, kubectl 두개 업그레이드해주면 된다.그리고  x). Skipping MINOR versions when upgrading is unsupported. For more ..

k8s/CKA 2024.11.03

Mock Exam - 3

Introduction뭄샤드 kode kloud - mock exam 3 Summary export samp="--dry-run=client -o yaml"export now="--force --grace-period 0" $samp, $now붙은건 이 명령어로 약어만든거니까 주의  Kubectl Reference Docs kubernetes.io    # 1서비스 어카운트를 만들고클러스터롤과 클러스터롤바인딩을 만들으라고함.이 서비스 어카운트를 클러스터롤과 연결시키라는 문제임. - 먼저 service account 부터.kubectl create sa pvviewer커맨드는 이렇고apiVersion: v1kind: ServiceAccountmetadata: creationTimestamp: null ..

k8s/CKA 2024.11.02