UI 로직과 비즈니스 로직 분리

김용희·2023년 8월 4일
0

[project] DEV STORE

목록 보기
4/4

비즈니스 로직이란

  • 소프트웨어가 존재하는 이유, 목적
  • 소프트웨어가 풀고자 하는 현실 세상의 문제

비즈니스 로직 분리하는 이유

  • 비즈니스 로직을 분리하는 이유는 관심사의 분리를 위해서이다.
  • 도메인 로직과 어플리케이션 서비스 로직은 어떤 앱이든 역할이 구분되고, 변경의 이유도 다르기 때문이다.
  • 도메인 로직과 아닌 것을 잘 나누고 결합도를 낮추면, 개발자가 로직을 이해하기 쉬워진다.

프로젝트 적용

  • 회원가입 페이지의 경우 UI 로직과 회원가입 요청(비즈니스) 로직이 같이 작성되어 있었습니다.
  • 이 두개의 로직을 분리하여 관심사를 나누는 것이 개발자 경험에 좋다고 판단하였습니다.
  • 코드 예시
// 회원가입 요청 로직
// fetchSignUp.tsx

const fetchSignUp = (userData: UserData, navigate: (to: string) => void) => {
  const formData = new FormData();
  const blob = new Blob([JSON.stringify(userData)]);

  formData.append('post', blob);

  api
    .post('/api/users', formData)
    .then((res) => {
      window.alert(res.data.message);
      navigate('/signin');
    })
    .catch((err) => {
      if (err.response.status === 409)
        window.alert('이미 가입한 메일이 존재합니다.');
    });
};

export default fetchSignUp;
  
  // ...
};
  • 이런 식으로 회원가입 요청 로직을 분리하여 회원가입 페이지에서 fetchSignUp 함수를 불러와 UI 로직과 비즈니스 로직을 분리하였습니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 4일

글 재미있게 봤습니다.

답글 달기