Controller -> 클라이언트의 요청을 받아 해당 요청을 처리하는 로직을 작성한다. 클라이언트의 요청에 대한 응답을 반환한다. Service -> 비즈니스 로직을 추상화한 인터페이스. 인터페이스를 사용하면 구현 세부 정보를 숨기고 클라이언트 코드와 분리할 수 있어서 유지보수성과 확장성을 높인다. ServiceImpl -> Service 인터페이스를 구현하는 클래스. Service 인터페이스에서 선언된 모든 메서드를 구현하기 때문에 해당 인터페이스에서 정의된 모든 비즈니스 로직을 구현해야 한다. 따라서 SErvice 인터페이스를 구현하는 공간이 ServiceImpl이다. → Service(인터페이스)와 ServiceImpl(구현체)을 분리해야 하는 이유는 유연성과 확장성 때문이다. → 인터페이스를 사..