개인 프로젝트를 마무리하며

윤재·2021년 10월 10일
0

노드를 사용한 간단한 crud에 jwt을 사용하여 회원가입, 로그인 인증기능을 구현해보았다.

이 과정에서 미들웨어의 존재를 알았고 여태까지 내가 사용하던 많은 기능들이 미들웨어란 것도 이제서야 눈치챘다 ㅎ.....

클라이언트에서 요청을 보내면 서버에서 설정한 미들웨어를 통과하고 그 다음 미들웨어를 통과하거나 클라이언트로 응답이 돌아간다.

app.use(express.urlencoded({extended: false}))
app.use(express.json())

req.body를 사용가능하게 해준 이 고마운 두줄도 익스프레스에서 기본적으로 제공하는 미들웨어이다
(미들웨어는 app.use()로 사용한다 !)

이 외에도 내장 미들웨어로는 static 등이 있다.

.

개인프로젝트 과제를 마무리하며 Jest를 이용한 테스트코드도 처음으로 작성해보았는데..

const {
  idCheck,
  pwConfirm,
  pwLenCheck,
  pw_idCheck,
} = require('./userFunction.js');

test('입력한 아이디는 영어대소문자,숫자만으로 3글자 이상 사용가능하다.(특수문자 및 한글 사용불가능)', () => {
  expect(idCheck('123')).toEqual(true);
  expect(idCheck('12')).toEqual(false);
});

test('pw1 과 pw2 는 동일한 값이다', () => {
  expect(pwConfirm('Ao@1', 'Ao@1')).toEqual(true);
  expect(pwConfirm('Aoli141', 'Ao1i414')).toEqual(false);
});

test('비밀번호는 4글자 이상이다.', () => {
  expect(pwLenCheck('12345')).toEqual(true);
  expect(pwLenCheck('')).toEqual(false);
  expect(pwLenCheck('123')).toEqual(false);
});

test('비밀번호가 아이디에 포함되지 않는다.', () => {
  expect(pw_idCheck('yunjaejo12', 'jyj12')).toEqual(true);
  expect(pw_idCheck('yunjaejo12', 'yunjae')).toEqual(false);
});

이번 과제에 쓰인 테스트코드다. (실제로는 케이스가 더 많다.)

테스트코드를 '잘' 쓰기 위해 함수를 최소한의 단위로 쪼개는 리팩토링도 해보았고

리팩토링하지 않은 독립성이 없는 함수는 테스트를 하기 힘들다는 점도 배웠다.

테스트코드를 '잘' 작성해두면 이를 믿고 내 코드를 맘껏 수정할 수 있을거같다 !

profile
안 되면 될 때까지

0개의 댓글