본문 바로가기
프로젝트 회고/Pill my rhythm 💊

[인공지능 웹 서비스 프로젝트] 11~12일 차 회고

by HelloJudy 2022. 6. 16.

📖 2022년 06월 14일 ~ 6월 15일


✔️ 오늘 내가 한 일

  • (14일) 1주 차 코드 리뷰 반영 (refactoring)
  • (14일) schedule 조회 API (weekly로 수정)
  • (14일) daily supplement 생성 API
  • (15일) refresh token + redis 구현
  • (15일) error middleware 수정
  • swagger 명세

 

💡 TIL ( Today I Learned )

[ 타입스크립트 Enums ]



TypeScript: Handbook - Enums (typescriptlang.org)

 

Handbook - Enums

How TypeScript enums work

www.typescriptlang.org

 

 

[ catch(error) 에서 error message 사용 ]

 

타입스크립트에서는 TypeScript는 error의 타입을 unknown을 기본값으로 갖는다. 

catch 문에서 발생하는 에러가 Error 객체가 아닌 에러일 수도 있기 때문에 Error 타입을 지정해줄 수 없다.

따라서 따로 util 함수를 만들어서 해결했다!

 

👉 [Error: TS(2339)] TypeScript에서 catch(error) 에서 error message 사용하기

 

 

 

[ Refresh Token + Redis 연결 ]

 

지난 프로젝트에서는 redis 대신 mongoDB에 refresh token을 저장했지만 이번에는 redis를 연결했다.

지금은 localhost에 연결되어 있지만 나중에 배포되는 서버에 설치하여 띄울 예정이다.

 

재발급 로직에서 refresh token에 대한 유효성 검사는 총 두가지로 설계했다.

  1. redis내 존재 여부
  2. 전달받은 userId와 일치 여부

그리고 또한 사용자가 로그아웃을 할 때 refresh token은 더이상 필요가 없기 때문에 삭제하는 로직도 추가했다.

 

import * as redis from "redis";
import dotenv from "dotenv";
dotenv.config();

const redisClient = redis.createClient();

redisClient.connect();

redisClient.on("ready", () => {
  console.log("redis is ready");
});

redisClient.on("error", (error) => {
  console.error(error);
});

export default redisClient;

 

  • Redis에 저장 (해당 코드는 로그인할 때  refresh token 발급하고 저장해야한다.)

  • Redis에서 불러오기

 

 

💁‍♀️ 오늘 느낀 점

 


[ Team ]

 

우리 팀 디스코드 방엔 유연근무제를 하는 봇이 3마리(?) 있다.

 

자꾸 새벽에 야근하는 우리 팀을 두고 도망가는 벡세라를 견제하기 위한 직원 하리보다.

 

귀여워❤️

 

봇이 두 마리니깐 편하구먼? ㅋㅋㅋㅋ 아침에 잔잔하게 음악 듣고 있으니깐 팀원 분이 들어오셨다가 바로 나가셨다 🤣

찍먹 하고 나가면 어떡해요~~

 

 

 

📌 내일 할 일(계획)

  • schedule, main MVP 계속 구현하기
  • AI에 사용할 flask app 만들기
  • 영양제 DB 모델 (테이블) 구축하기
  • current/user 와 logout 구현하기
반응형

댓글