Controller, Service, Repository, Entity
- 소프트웨어 아키텍쳐 및 디자인 패턴에서 나온 용어들
- 주로 서버 측 개발에서 사용
- MVC (Model-View-Controller)나 유사한 아키텍처에서 볼 수 있음
Controller
- 사용자 인터페이스와 애플리케이션 로직 간의 상호작용을 조정하고 제어
- 클라이언트로(일반적으로 웹 브라우저)부터 들어오는 HTTP 요청을 받아 해당 요청에 대한 적절한 애플리케이션 로직을 실행, 결과 반환
- 주로 사용자의 입력을 처리하고 비즈니스 로직 호출하는 역할
Service
- 비즈니스 로직을 처리하고 애플리케이션의 핵심 기능 제공
- controller에서 받은 요청에 대해 실제로 실행되어야 하는 작업 수행
- 주로 데이터 가공, 검증, 외부 서비스 호출 등과 같은 비즈니스 로직
- 서비스는 보통 여러 컨트롤러에서 공유되어 사용됨
Repository
- 데이터베이스와의 상호 작용을 담당하며 데이터를 영속적으로 저장하고 검색
- 데이터베이스와의 통신을 추상화하고, 애플리케이션에서 데이터에 대한 CRUD 작업 수행
- 데이터베이스에 직접적으로 접근하는 로직을 캡슐화하여, 데이터베이스 스키마 변경이나 다양한 데이터베이스 시스템 사용의 용이성을 제공
Entity