FSD 아키텍처 도입 경험 회고: 클린 코드와 팀 협업의 여정
🤖 AI 추천
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 아키텍처 도입 시 겪는 현실적인 어려움과 고민을 솔직하게 담아내고 있습니다. 기술적인 내용과 함께 팀 문화, 개인적인 학습 과정에 대한 진솔한 회고를 통해 공감대를 형성하는 톤을 유지합니다.
📚 관련 자료
feature-sliced-design
FSD 아키텍처의 공식 문서 저장소로, FSD의 기본 원칙, 개념, 예시 등 깊이 있는 정보를 제공합니다. 본 글의 핵심 주제인 FSD 아키텍처의 이해와 적용에 직접적인 도움을 줄 수 있습니다.
관련도: 95%
tanstack/query
Tanstack Query (React Query)의 공식 GitHub 저장소입니다. 글에서 언급된 Tanstack Query의 활용법, 구현 방식, 성능 최적화 등에 대한 실제 코드 예시와 커뮤니티 정보를 얻을 수 있습니다.
관련도: 85%
clean-code-javascript
JavaScript 기반 클린 코드 원칙에 대한 컬렉션을 제공하는 저장소입니다. 글에서 '클린 코드 챕터'를 언급하며 아키텍처 설계 및 코드 품질에 대한 고민을 다루고 있기에, 관련 원칙 및 모범 사례를 참고하는 데 유용합니다.
관련도: 70%