가장 마지막 팀프로젝트에서 프론트 아키텍처를 FSD로 개발을 했었다. 얼추 이해했지만, 대부분 cursor가 작업을 했었기에 구조를 절반도 이해하지 못한 것 같아서 짬짬히 공부하고 적용해보려고 한다.
우선은 알고리즘에 의해 발견된 영상 하나를 간략하게 요약해보려고 한다.
https://www.youtube.com/watch?v=pYAYTJ0vFfs
FSD의 풀네임은 Feature-Sliced Design. 기능별로 잘라서 디자인을 하겠다는 뜻이다. 그렇다고 개발자 위주로 나누는 것이냐? 아니 사용자의 이용을 중심으로 나누는 것이다.
(참고: https://feature-sliced.design/)

(출처: 구글검색)
이렇게 layer단위로 먼저 나누고, 레이어 안에는 slice, 그 안에는 segement로 이루어지게 된다. 같은 layer안에 있다 해도 슬라이스와 슬라이스는 참조할 수 없으며 같은 슬라이스 안에 있는 세그먼트더라도 세그먼트끼리는 참조할 수 있다. 오직 layer들 만이 위에서 아래방향으로 참조할 수 있다.
즉, app은 widget을 참조할 수 있지만 widget은 app을 참조할 수 없다.
그렇다면 각각의 layer는 무엇을 기준으로 나누느냐! 사실 이건 상대적인 것이다. 팀 내에서 소통을 통해 정하면 된다. 프로젝트 당시에도 features는 무엇이며 entities에는 무엇이 들어가는건지 감이 안잡혔었는데 논의가 필요한 부분이라고 해서 살짝 안심했다.
아마 제대로 이해하려면 간단한 토이프로젝트에 이 구조를 적용시켜봐야 조금이나마 더 이해한채로 글을 작성할 수 있을 것이다.