[PEC 정규세션] React 에서 비즈니스 로직을 Hook 으로 언제 분리하면 좋을까?
- 초기 분리 결정의 기준: 승규님은 삭제 기능이 해당 모달에서만 사용될 것이라고 판단하여 처음에는 비즈니스 로직을 컴포넌트 내부에 두었습니다. 🎯
- 지현님의 분리 주장 (React 원칙): React 아키텍처의 기본 원칙(컴포넌트는 UI에 집중, 로직 분리)에 따라 재사용성, 유지보수성, 코드량 감소를 위해 로직 분리를 권장했습니다. 🏗️
- React 18의 철학 반영: 동시성(Concurrency)과 멱등성(Idempotency)을 강조하는 React 18의 관점에서, 특히 사용자 액션에 민감한 모달의 로직은 사이드 이펙트 관리를 위해 분리하는 것이 좋다고 언급했습니다. ⚡
- 오버 엔지니어링 우려: 당장 재사용성이 없거나 미래 계획에 없는 경우, 미리 분리하는 것이 오버 엔지니어링이 될 수 있으며, 이는 관리할 파일 수 증가 및 복잡성 증대로 이어질 수 있다고 지적했습니다. ⚠️
- 상황별 판단의 중요성: 모든 상황에 적용되는 단 하나의 정답은 없으며, 프로젝트의 현재 상태, 미래 확장 가능성, 팀 컨벤션, 개발자의 숙련도 등을 종합적으로 고려하여 분리 여부를 결정해야 합니다. 🧭
- 비즈니스적 관점의 고려: 프로덕트 엔지니어로서 현재는 필요 없더라도 미래에 유사한 기능이 다른 곳에서 재사용될 가능성을 비즈니스적으로 예측하여 선제적으로 로직을 분리하는 것이 현명할 수 있습니다. 🔮
- 기술적 역할 분담: 클라이언트 레이어, API 레이어, DB 레이어 등 기술적 역할에 따라 로직을 분리하는 것이 시스템의 명확성과 효율성을 높이는 데 기여합니다. ⚙️
- 토론의 가치: 다양한 관점과 경험을 공유하는 토론은 기술 면접 준비뿐만 아니라, 실제 개발 과정에서 복잡한 설계 문제에 대한 최적의 트레이드오프를 찾는 데 필수적입니다. 💬
- 경험에 따른 의사결정의 복잡성: 연차가 높아질수록 단일 정답이 아닌, 다양한 기준(비즈니스, 기술 철학, 팀 컨벤션, 공수 등)을 고려한 '선택'의 문제에 직면하게 되며, 이는 트레이드오프를 수반합니다. 🤔