cleanUrl: /Nest-아키텍처-서비스와-리포지토리
1. 서비스 vs 리포지토리

1.1. 서비스와 리포지토리를 나누는 이유

- 서비스와 리포지토리는 역할이 다르지만 CRUD 작업을 하다 보면 자연스럽게 유사한 메서드가 많아진다.
- 서비스와 리포지토리를 그럼에도 불구하고 분리하는 이유는 책임을 명확히 분리하고, 유지보수성과 확장성을 높이기 위함이다.
1. 책임 분리 (Separation of Concerns)
- 리포지토리는 데이터를 어떻게 저장하고 가져올지를 담당한다.
- 서비스는 비즈니스 로직을 적용하고, 여러 리포지토리를 조합하여 데이터를 가공하는 역할을 한다.
- 만약 하나의 클래스가 둘 다 담당한다면, 데이터베이스 관련 코드와 비즈니스 로직이 뒤섞여 유지보수하기 어려워진다.
2. 유지보수성 항상 (Maintainability)
- 데이터베이스 구조가 변경되더라도 리포지토리만 수정하면 되므로 서비스 코드에는 영향을 주지 않는다.
- 반대로, 비즈니스 로직이 변경되더라도 리포지토리는 그대로 두고 서비스만 수정할 수 있다.