안녕하세요!
질문주신 컨틀롤러와 레스트 컨트롤러가 Spring 에서 제공하는 @Controller 와 @RestController 어노테이션으로 이해했는데 맞을까요?
만약 그게 맞다면, 이 둘의 차이는 REST API 개발시 편의를 위해 제공되는 어노테이션일 뿐이고 사실 @Controller 를 사용하더라도 REST API 를 만들 수 있습니다.
@Controller 와 @RestController 의 차이를 잘 설명한 블로그 글이 있어 첨부드립니다.
- https://mangkyu.tistory.com/49
REST API 는 REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받을 수 있게 API 작동 방식 규칙을 정의한 소프트웨어 아키텍처이고 이를 잘 따랐을 때 "Restful 한 API 다" 라고 말합니다.
REST API 설계와 관련되어 참고하시기 좋은 글을 추가로 공유드립니다.
- https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design
- https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-implementation
부디 저의 답변이 도움이 되시길 바랍니다.