React useFunnel Hook으로 강의실 모달 지옥 탈출!

by DD
7개월 전
조회수 2

React 기반 강의실 모달 로직의 복잡성을 해결하기 위해 useFunnel hook을 설계함

Funnel 패턴을 활용하여 모달 간 강한 결합을 제거하고, 조건 분기 로직을 중앙 집중화

코드 가독성유지보수성을 향상시켜 새로운 요구사항에 유연하게 대응 가능해짐

useFunnel Hook의 핵심 설계

useFunnel hook은 모달, 함수 호출을 Step으로 추상화하여 순차적으로 실행한다. 구체적으로, `startFunnel`로 퍼널을 시작하고, `nextStep`을 호출하여 다음 단계를 진행한다. 따라서 모달 간의 의존성을 제거하고, 코드 구조를 단순화한다.

기존 구조 vs Funnel 패턴

기존 방식은 각 모달이 다음 모달을 직접 호출하여 강한 결합을 야기했다. 반면 Funnel 패턴은 각 모달이 `nextStep()`만 호출하므로 결합도를 낮추고 유연성을 확보한다. 결과적으로 모달 순서 변경조건 로직 관리가 용이해진다.

useFunnel Hook의 확장성

useFunnel hook은 `prepareCondition`을 통해 API 호출을 대기하거나, 중첩 퍼널을 지원하여 확장성을 높였다. 구체적으로, 중첩 퍼널은 특정 단계에서 다른 퍼널을 실행하며, 즉시 실행할 step제외할 step을 설정할 수 있다. 따라서 복잡한 요구사항에도 유연하게 대응 가능하다.

강의실 모달 지옥에서 탈출하기: React useFunnel hook 설계