RFC: FDA(Feature-Driven Architecture) 기반 폴더 구조 변경 및 react-query 구조 개선 #53
Labels
do not close
do not close
good first issue
good first issue
refactor
Refectoring
RFC
Propose for refactoring or something else
정보
현재 상황
각 비즈니스 로직에 대한 관심사가 흩어져 있다
한 API 추가 시 건드려야 하는 파일이 5개정도다. (
infra/api
,hook/api
,쿼리키 파일
,타입 파일
,mock handler 파일
) 이는 응집도를 떨어뜨려 커지는 서비스 규모에 따라 개발 생산성 저하가 있을거라 생각한다.아래 PR에서 그 문제점을 볼 수 있다.
→ 태그 검색 결과 API에 필드를 수정하기 위해
mock handler
,infra/api
,hook/api
,type
파일 4개의 파일을 모두 수정해야 했다.→ 태그 즐겨찾기 관련 API를 수정하기 위해
mock handler
,infra/api
,hook/api
,querykey
파일 4개의 파일을 수정해야 했다.→ 태그 즐겨찾기 관련 컴포넌트 (
CategoryContent
,TagBookmarkButton
)도 추가로 수정해야했음폴더구조가 복잡하다
비즈니스 로직이 여러 파일에 흩어져 있어 API 추가 시 여러 파일을 건드려야 해서 API수가 많아진다면 충분히 실수할 여지가 있다. 또한 API 수정/삭제 시 여러 파일을 바라봐야 해서 유지보수성과 생산성이 떨어진다. 따라서 아래와 같은 문제가 있다.
폴더구조가 복잡하고 depth가 많이 들어간다.
application
과infra
폴더를 많이 언급했는가? 개인적인 경험상 그러지 않았다같은 페이지 내 로직들이 흩어져 있다.
리팩터링1. 폴더구조 개선
FDA(Feature-Driven Architecture)로 변경하고자 한다. FDA를 통해 코드의 역할과 책임을 나누고, 같은 관심사의 코드를 응집시켜 필요한 로직과 그 의존관계를 빠르게 탐색할 수 있도록 개선하고자 한다.
리팩터링2. react-query 구조 개선
같은 쿼리키를 가지는 관심사(같은 API)는 최대한 같은 파일에 위치시킨다.
AS-IS
queryFn
Response Type
queryKey
TO-BE
우리 서비스에 좋아지는 것
팀원들에게 도움되는 것
체크리스트
#54
#58
#61
The text was updated successfully, but these errors were encountered: