개인 프로젝트를 마무리하며
노드를 사용한 간단한 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);
});
이번 과제에 쓰인 테스트코드다. (실제로는 케이스가 더 많다.)
테스트코드를 '잘' 쓰기 위해 함수를 최소한의 단위로 쪼개는 리팩토링도 해보았고
리팩토링하지 않은 독립성이 없는 함수는 테스트를 하기 힘들다는 점도 배웠다.
테스트코드를 '잘' 작성해두면 이를 믿고 내 코드를 맘껏 수정할 수 있을거같다 !
Author And Source
이 문제에 관하여(개인 프로젝트를 마무리하며), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@andyjo/개인-프로젝트를-마무리하며저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)