20240306 기술매니저님 Q&A

jjj·2024년 3월 7일
0

메모

목록 보기
16/20

20240306 기술매니저님 Q&A

  1. 비동기 처리 / 동기 처리 중에 뭐가 더 좋은지?

(1) 내 코드 :
const { nickname, password, userType } = await signupSchema.validateAsync(req.body);
(2) 성희님 코드 :
const{error, value} = signUpSchema.validate(req.body, { abortEarly: true });


재훈님 코드 먼저 리뷰
// log.middleware.js

logger 에서 Console() 로 출력을 하는데 우리가 하루종일 콘솔을 보고 있을 수 없으니
파일로 저장하여 관리할 수 있게 만들어야한다.
winston-daily-rotate

성희님 코드 리뷰

  • 로그인 할 때도, Joi 사용하는 게 좋다.
    Joi 를 사용하면 최대한 양식에 맞지 않는 입력값을 걸러낼 수 있다.
    걸러낸다는 말은 DB를 거치지 않기 때문에 코스트 사용이 덜 든다는 뜻.

  • 리프레쉬토큰은 페이로드에 내용은 딱히 필요없다. DB에 저장하기 때문에.
    리프레쉬토큰은 DB에 관리한다. DB에 저장을 하기 때문에 굳이 내용을 적을 필요가 없다는 뜻.

  • 리프레쉬토큰이 만료될 수도 있다. 그러면 로그인하라고 하면 된다.

  • 액세스 토큰을 새로 만들 때, 리프레쉬토큰도 같이 새로 발급한다.
    JWT refresh rotate

우정 코드 리뷰

try 부분에서 return 말고 throw 해서 error 날리자.

decodedAccessToken = {nickname, role} 지우기!
아니면 사용자 확인 바로 위로 코드 순서 바꾸자.

액세스토큰 새로 만들 때, 리프레쉬 토큰도 새로 발급.

req.user = user; / res.locals 차이점
locals는 개발자들이 사용하라고 만든 영역이다.

req를 할당하게 되면 req의 내용이 바뀔 수 있기 때문에 위험하다. req의 값은 바뀌면 안된다.

// 카테고리 라우터
401 로그인 되지 않은 상태인 경우 이 부분은 미들웨어에서 처리할 수 있기 때문에 카테고리 API 에서 지울 수 있다.

401 사장님 토큰을 가지고 있지 않은 경우도

===> 에러 처리하는 메세지를 미들웨어로 처리할 수 있다.

jwt 토큰이 만료된 경우도 미들웨어에서 처리하기 때문에 API에서 지울 수 있다. == 코드 깔끔!

ex: !categoryId
Joi 사용하면 API 코드가 더 간결해질 수 있다.

app.js 에러처리미들웨어 추가

bcrypt : 비밀번호 암호화 하는 데 특화 된 라이브러리
argon2 을 사용하면 조금 더 편하게 사용할 수 있다.
성능 순서 - argon2 > scrypt > bcrypt
더 빠르고, 더 편하다.

Jira : 일 할당

5주차 과제
deletedAt : 실제로 데이터를 지우진 않고 지웠다는 기록만 남긴다. 기록용.

log는 완전 중요하다. 무슨 행동을 해도 log를 남겨야한다.
-cloudwatch
-datadog

0개의 댓글

관련 채용 정보