• 리포지터리(repository): 정보를 검색하고 영속화(persist)하는 모든 로직을 포함한다. 내부적으로 리포지터리는 데이터베이스와 통신해 정보를 처리한다.
• DTO(Data Transfer Object, 데이터 전송 객체): 다른 계층 사이에서 정보를 저장해 전달하는 클래스다.
• 유틸리티 클래스는 선택한 프로그래밍 언어나 프레임워크가 제공하지 않는 유틸리티 메서드를 포함한다.
일반적으로 백엔드는 원격 호출이나 어떤 구체적인 프로토콜을 통해 외부 애플리케이션과 통신해야 한다. 예를 들어 정부 시스템에 요청을 보내는 웹 서비스나 애플리케이션이 이메일을 보낼 때 쓰는 SMTP(Simple Mail Transfer Protocol, 단순 메일 송신 프로토콜) 서버를 생각해보자. 백엔드 외부에 있고 일정 부분 백엔드가 제어할 수 없는 모든 것을 인프라(infrastructure)라고 한다.