About_entities

·2025년 5월 14일

🍪 FE Info

목록 보기
6/7

FSD 구조에서 entities 레이어는 비즈니스 개념 중심(User, Post 등) 의 코스를 담당한다.
여기서 말하는 "비즈니스 개념"이란, 단순히 기능이 아니라 "데이터 중심이냐 Vs. 기능 중심이냐" 로 나눠서 이해해야 한다.


entities 폴더에는 데이터 중심 개념이 들어간다.

  • User, Post, Comment, Product, Team, Ranking
  • 이들은 앱 내에서 "핵심 객체(주체)" 로 존재하며,
  • 관련된 모델, API, 상태 등을 포함한다.

features 폴더에는 기능 중심 개념이 들어간다.

  • 예: login, signup, writeComment, likePost
  • 사용자의 행위(시나이로) 를 담당하며,
  • 보통 UI와 로직 이 함께 들어있다.

그렇다면 "데이터 중심"이란?

현실 세계에 존재하는 개체를 앱 안에서 고유한 데이터 구조로 모델링한 것

  • 앱에서 어떤 대상을 표현하거나 저장하려면 데이터를 기반으로 구조화해야 한다.
  • 이런 구조는 다양한 화면인 기능에서 재사용 가능하다.

🔍 예시로 이해하기

🔷 User → 데이터 중심 개념 (✅ entities에 들어감)

{
  id: 1,
  name: "봄김",
  email: "bom@dev.com"
}
  • 사용자라는 대상을 표현하는 객체
  • 여러 화면에서 보여지고, 상태로도 저장됨 → 데이터 중심

🔷 signin → 기능 중심 개념 (✅ features에 들어감)

  • 로그인을 한다는 건 행위이지, 어떤 대상을 표현하는 건 아님
  • POST /login 요청을 보낼 뿐, 이 자체는 데이터로 저장되지 않음 → 따라서 기능 중심 개념

✅ 개념 비교 정리

개념중심예시소속
User, Post, Product✅ 데이터 중심고유한 데이터가 있고 다양한 화면에 사용됨entities/
Login, Signup, Like, WriteComment❌ 기능 중심유저의 특정 행위, 시나리오 중심features/

💡 더 쉽게 기억하는 법

질문Yes라면 entities, No라면 features
이건 "무언가"를 설명하는 데이터인가?✔️ → User, Post
이건 "무언가를 하는 행위"인가?✔️ → signin, commentWrite

🔄 기억용 요약 문장

"데이터 중심이라는 건, 화면에 보여지고 저장되는 정보 자체를 중심으로 생각하는 거야.User는 어떤 대상(사람)이지만, signin은 행동이잖아?"


📌 추가로 알아두면 좋은 점

entities 폴더에 signin 같은 기능이 들어가도 될까?

  • FSD 원칙에 따르면,
    • 데이터 중심 개념entities/,
    • 행동 중심 기능features/에 넣는 것이 가장 이상적이다.
  • 하지만 실제 프로젝트에서는 규모나 팀 스타일에 따라 features/를 따로 만들지 않고, 작은 기능들을 entities/ 안에 넣는 경우도 많다.
  • 즉, entities/signin처럼 구성된 경우도 잘못된 건 아니며, 작은 기능을 "하나의 도메인처럼" 다룬 유연한 구조라고 이해하면 된다.

profile
FE 개발 꿈틀이

0개의 댓글