FSD 아키텍처 도입 경험 회고: 클린 코드와 팀 협업의 여정

🤖 AI 추천

FSD 아키텍처에 대한 초기 경험과 고민을 공유하는 글입니다. FSD를 처음 접하거나 도입을 고려하는 프론트엔드 개발자, 특히 클린 코드 원칙을 프로젝트에 적용하며 발생하는 어려움과 해결 과정을 알고 싶은 개발자에게 유용합니다. 또한, 팀 내 코드 리뷰 문화 및 협업 방식에 대한 인사이트를 얻고 싶은 분들께 추천합니다.

🔖 주요 키워드

FSD 아키텍처 도입 경험 회고: 클린 코드와 팀 협업의 여정

FSD 아키텍처 도입 경험 회고: 클린 코드와 팀 협업의 여정

핵심 기술

본 글은 클린 코드 챕터 학습 후 FSD(Feature-Sliced Design) 아키텍처를 프로젝트에 적용하고, Tanstack Query와 같은 상태 관리 라이브러리를 활용한 경험을 회고합니다. 복잡한 폴더 구조 설계와 팀 내 협업 과정에서의 고민을 공유합니다.

기술적 세부사항

  • FSD 아키텍처 적용: /entities, /features 등의 개념을 이해하고 적용하는 과정.
    • 엔티티(Entity)는 정보, 피처(Feature)는 행동으로 정의하여 폴더 구조 설계.
    • 게시글 관리 어드민 대시보드 예시:
      • entities/posts/api/api.ts: fetchPosts 함수 구현.
      • entities/user/api/api.ts: fetchUserBasic 함수 구현.
      • features/posts-list/api/api.ts: fetchPostsWithAuthors (Promise.all 활용) 함수 구현.
      • add-post, delete-post 등은 features 폴더에 작성.
  • 전역 상태 관리 라이브러리 및 Tanstack Query: 과제 수행 중 활용했으나, 시간 부족 및 어려움으로 인해 일부 구현에 AI 도움을 받음.
  • 폴더 구조 설계: 자신만의 폴더 구조를 만들어가는 과정에서 FSD의 깊이(depth)에 대한 의문 제기.
  • PR 제목 꾸미기 (구린내 클럽): 팀 내에서 PR 제목에 이모지 등을 활용하여 소통하는 문화.

개발 임팩트

  • FSD 아키텍처를 통해 기존의 /hooks, /components 식 폴더 구조의 한계를 극복하고 확장성 있는 구조를 모색.
  • 애플리케이션의 복잡성이 증가함에 따라 폴더 구조 설계에 대한 깊이 있는 고민을 유도.
  • 팀원들과의 기술적 논의 및 협업을 통해 문제 해결 능력 향상.

커뮤니티 반응

  • 원문에서 직접적인 커뮤니티 반응은 언급되지 않았으나, 팀원들과의 공유 시 FSD에 대한 부정적인 반응(싫어하는 것이 분명할지도)을 예상하며 복잡성에 대한 공감대를 형성.
  • 회사 개발팀과의 공유 시 반응이 없어 FSD 도입에 대한 추가적인 논의 필요성을 시사.

톤앤매너

실무 개발자의 입장에서 FSD 아키텍처 도입 시 겪는 현실적인 어려움과 고민을 솔직하게 담아내고 있습니다. 기술적인 내용과 함께 팀 문화, 개인적인 학습 과정에 대한 진솔한 회고를 통해 공감대를 형성하는 톤을 유지합니다.

📚 관련 자료