<aside> 📌

</aside>

🙄 개선의 이유

개선 전에는 코드를 역할(components, hooks, pages, …)에 따라 분류해놨다. 처음에는 이 정도의 분류로도 충분했지만, 개발을 할수록 점차 문제점이 보이기 시작했다.

개선 전 구조의 문제점

1. src/components의 평면적인 구조

2. src/hooks의 평면적인 구조

3. 기능 확장의 어려움

이런 문제점들로 인해 디렉토리 구조를 개선하기로 결정했다.

개선 방향: FSD (Feature-Sliced Design) 도입

기능들이 동일 레벨에 혼재되어 있어서 구분이 명확하지 않다는 문제가 있었다. 그렇기에 애플리케이션을 기능단위로 분리하는 아키텍처 방법론인 FSD를 도입하여 각 기능 단위로 관련 코드들을 그룹화하면, 위 문제점들을 해결할 수 있을 것이라고 생각한다. 특히 라이브 스트리밍, 채팅과 같이 기능 중심의 복잡한 애플리케이션에서 FSD는 코드의 구조화와 유지보수성을 크게 향상시킬 수 있을 것이다.

FSD 말고 다른 컴포넌트 디자인 패턴은 고려 안 했나요??