[ 기술 스터디 ]DRY 원칙

김민석·2021년 7월 13일
1

기술 스터디

목록 보기
12/18

여기를 참고하여 작성하였다.


DRY 원칙이란?

요약 : Don't Repeat Youtself의 약자. "똑같은 일을 두번하지 말 것!"이라는 뜻.


반복되는 로직은 추상화자동화로 제거해야한다는 원칙이다.

모듈화하거나 함수화 하는 방법들이 있겠다.

즉, 중복을 죄악시하자!



왜 DRY?

중복을 줄여야하는 이유는 다음과 같다.

  • 프로젝트의 규모가 커짐에 따라 중복된 코드가 프로그램을 복잡하고 이해하기 어렵게 만든다.
  • 중복된 코드에서 버그가 발생한다면 중복된 모든 부분을 각각 수정해야 한다.

React에서는 Form을 사용하는 부분이 많을 때는 아예 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;

express를 사용한다면 custom middleware를 사용해서 로그인 로직을 하나에서 관리하는 방법도 있다.

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) => {
  ...
}

1개의 댓글

comment-user-thumbnail
2021년 11월 7일

DRY원칙 요약부분에 You'r'Self 오타가있네유

답글 달기