여기를 참고하여 작성하였다.
반복되는 로직은 추상화와 자동화로 제거해야한다는 원칙이다.
모듈화하거나 함수화 하는 방법들이 있겠다.
중복을 줄여야하는 이유는 다음과 같다.
- 프로젝트의 규모가 커짐에 따라 중복된 코드가 프로그램을 복잡하고 이해하기 어렵게 만든다.
- 중복된 코드에서 버그가 발생한다면 중복된 모든 부분을 각각 수정해야 한다.
custom Hook
으로 떼어버리는 방법이 있다.import { useState, useCallback } from 'react';
const useInput = initialInput => {
const [input, setInput] = useState(initialInput);
const onChangeInput = useCallback(e => {
const { name, value } = e.target;
setInput(prev => ({
...prev,
[name]: value,
}));
}, []);
return [input, onChangeInput, setInput];
};
export default useInput;
exports.isLoggedIn = (req, res, next) => {
if (req.isAuthenticated()) {
return next();
} else {
return res.status(401).send("로그인이 필요합니다.");
}
};
exports.isNotLoggedIn = (req, res, next) => {
if (!req.isAuthenticated()) {
return next();
} else {
return res.status(401).send("로그인이 되어 있습니다.");
}
};
이렇게 미들웨어를 사전에 정의해서, 각 엔드포인트에 미들웨어로 끼워넣기만 하면 된다.
router.post("/", isLoggedIn, async (req, res, next) => {
...
}
DRY원칙 요약부분에 You'r'Self 오타가있네유