forked from FRONTENDSCHOOL5/final-13-NuTalent
-
Notifications
You must be signed in to change notification settings - Fork 0
디렉토리 구조 변경
이선근 edited this page Oct 10, 2023
·
1 revision
파일 타입 기반 디렉토리 구조를 사용했었습니다. 이렇게 분류를 하다보니 파일이 늘어날수록 한 폴더에 너무 많은 파일이 있어 찾기가 어려웠습니다.
그래서 리액트 폴더 구조의 best practice를 찾아보았고 feature-based directory에 관한 글을 보았습니다. 이 구조를 따르면 기능에 관련된 코드를 한 곳에 모아 관리하기가 쉽고, 추후 앱에 기능이 추가될 때 확장에 더 유연하게 대처할 수 있다는 것입니다.
// 리팩토링 이전
src\components
┣ Comment
┣ BottomSheetModal
┣ Button
┣ Carousel
┣ PostItem
┣ ProductItem
┣ Tabmenu
┣ TagBar
┣ TextActiveInput
┣ Top
┣ Transition
┣ User
┣ Modal
┣ PostList
┣ ProductList
┣ Profile
┗ Toast
---------
// 리팩토링 후
src\components
┣ Elements
┃ ┣ Button
┃ ┣ Carousel
┃ ┣ CircleImage
┃ ┣ ScrollToTop
┃ ┣ Skeleton
┃ ┣ TextInput
┃ ┗ Transition
┣ Layout
┃ ┣ BottomLayout
┃ ┗ MainLayout
┗ Modal
features\posts\components
┣ Post
┣ PostEditor
┣ PostList
┣ PostListSkeleton
┣ PostSkeleton
┗ TagBar
위처럼 기존에는 재사용 가능한 공통 UI 컴포넌트와 기능과 더 관련있는 컴포넌트가 섞여있었지만 아래와 같이 공통 컴포넌트는 src/compoonents
에, 기능과 관련있는 컴포넌트는 features/[기능명]/components
에 분리했습니다.