최근 FSD 아키텍처로의 전환을 경험하면서 많은 도전과 배움을 얻게 되었다. 처음에는 단순히 디렉토리 구조를 정리하는 정도로 가볍게 생각했지만, 리팩토링을 시작하고 얼마 지나지 않아 FSD의 개념을 기존의 규칙이 정해진 디렉토리 구조에 적용하는 것이 쉽지 않다는 것을 깨달았다. 특히, 각 레이어와 슬라이스의 규칙을 맞추기 위해 코드를 새로 작성해야 하는 경우도 있었고, 더 세분화해야 하는 상황도 발생했다.
가장 큰 혼란은 Feature와 Widgets의 경계였다. 각 레이어의 역할과 책임을 명확히 하려고 했지만, '어디까지가 재사용 가능한 코드인가?'라는 의문이 계속 들었다. 고민 끝에 내린 결론은, "다른 형태로 변경해도 유연하게 대응할 수 있는가?"라는 기준으로 분류하는 것이었다.
현재는 모든 폴더를 규격에 맞게 조정하여 1차적인 리팩토링을 마친 상태다. 하지만 세부적인 부분에서 구조화가 잘 이루어졌는지 다시 한번 검토할 필요가 있다. 작은 부분까지 세밀히 살펴보며 구조화가 제대로 되었는지 확인하기 위해 나만의 FSD 체크리스트를 만들어볼 계획이다.
FSD 아키텍처 학습 과정에서 단테님의 글과 유명한 FSD 번역본을 많이 참고했지만, 솔직히 공식 문서는 충분히 읽지 않았다. 이번 기회에 공식 문서를 중심으로 학습하며, 혹시 잘못 이해한 부분이 없는지 꼼꼼히 점검하려고 한다.
이번 FSD 전환 경험을 통해 디렉토리의 규칙을 잘 구조화하는 것만으로도 코드의 가독성과 유지보수성을 극대화할 수 있다는 사실을 깨달았다. 이전까지는 다른 사람들이 그렇게 하니까 아무 생각 없이 Component, hooks, store, type 등으로 디렉토리를 규격화했지만, 서비스가 확장되면서 체계가 없는 것이 발목을 잡는다는 점을 뼈저리게 느꼈다.