본문으로 건너뛰기

231201

만들면서 배우는 클린 아키텍처

엔티티와 리포지토리가 무엇일까?

엔티티

  • 비즈니스로직의 핵심을 담당
  • 비즈니스 로직과 관련된 데이터의 구조를 정의함.
  • 데이터의 집합, 저장되고 관리되어야하는 데이터를 의미한다.
  • 데이터베이스에서는 레코드를 의미함.
  • 영속성은 엔티티를 영구 저장하는 환경을 의미함.
class User {
constructor(id, name, email) {
this.id = id;
this.name = name;
this.email = email;
}
}

리포지토리

  • 엔티티의 데이터 영속성을 관리하며, 시스템의 다른 부분들과의 결합도를 낮춤.
  • 엔티티의 영속성을 관리하는 클래스, 인터페이스를 말함.
  • 즉, 데이터베이스나 다른 영속성 메커니즘을 통해 엔티티의 저장, 검색, 업데이트, 삭제 등을 담당함.
  • 리포지토리는 엔티티와 영속성 메커니즘 사이의 중간자 역할을 하여, 엔티티가 비즈니스 로직에만 집중할 수 있도록 돕느다.
class UserRepository {
constructor() {
this.users = [];
}

// 사용자 추가
addUser(user) {
this.users.push(user);
}

// 모든 사용자 검색
findAll() {
return this.users;
}

// ID로 사용자 검색
findById(id) {
return this.users.find(user => user.id === id);
}
}

tailwind

  • place-items-center
  • peer (형제 선택자) / group(부모 선택자)
  • @layer components