목적은 각 기능별로 구분을 통하여 코드의 가독성, 사용성등의 효율을 상승하기 위함입니다.
각 레이어의 역할은 다음과 같습니다.
routes 레이어: 클라이언트에서 HTTP 요청을 받아 컨트롤러에게 전달하는 역할을 합니다.
controllers 레이어: 라우트에서 받은 요청을 비즈니스 로직을 처리하기 위한 서비스로 전달합니다.
services 레이어: 컨트롤러로부터 받은 데이터를 가공하여 데이터베이스와 상호작용하며 비즈니스 로직을 처리합니다.
repositories 레이어: 데이터베이스와의 직접적인 상호작용을 담당합니다.
models 레이어: 데이터베이스와의 연결과 데이터의 구조를 담당합니다.
이러한 역할 분담을 통해 유지보수와 확장성이 높은 코드를 작성할 수 있습니다. 또한, 데이터베이스와 HTTP 요청을 분리하여 코드의 복잡도를 낮추는 효과가 있습니다.