Model-View-Controller
의 약자로, 소프트웨어 디자인 패턴 중 하나이다.
애플리케이션을 세 가지 주요 부분 Model
, View
, Controller
로 나눈다.
데이터와 비즈니스 로직을 담당한다. 데이터베이스나 파일 시스템과 같은 데이터 저장소에서 데이터를 가져오거나 변경한다.
사용자 인터페이스를 담당한다. 데이터를 시각적으로 보여주는 역할을 하며, 일반적으로 웹 페이지, 모바일 앱 또는 데스크톱 앱과 같은 UI 컴포넌트로 구성된다.
모델과 뷰를 연결하는 역할을 한다. 사용자 입력에 응답하여 모델의 데이터를 변경하거나, 뷰에서 발생하는 이벤트를 처리한다.
MVC 패턴
은 각 부분이 서로 독립적
이기 때문에 유지보수
와 확장성
이 용이하며, 다양한 플랫폼에서 사용된다. 웹 개발에서는 Spring MVC 프레임워크
와 같은 구현체를 사용하여 이 패턴을 구현할 수 있다.
API
는 Application Programming Interface
의 약어로, 프로그램 간의 상호작용을 가능하게 하는 인터페이스를 의미한다.
API
는 소프트웨어의 각 요소가 서로 통신하고 데이터를 주고받을 수 있도록 하는데 사용된다. 웹 애플리케이션에서는 서버 측에서 데이터를 요청하는 경우에 API를 사용한다.
RESTful
은 Representational State Transfer
(표현 상태 전송)의 약어로, 웹 서비스에서 널리 사용되는 아키텍처 스타일이다.
RESTful
은 웹의 기존 기술을 최대한 활용하여, 다양한 클라이언트와 서버 간의 통신을 가능하게 한다. RESTful 아키텍처는 URI
(Uniform Resource Identifier), HTTP 메서드
, HTTP 상태 코드
등을 사용하여 자원을 정의하고, HTTP 프로토콜
을 기반으로 한 데이터 전송을 처리한다.
장점
RESTful
아키텍처의 가장 큰 장점은, HTTP 프로토콜을 기반으로 하기 때문에, 클라이언트와 서버 간의 상호작용이 단순하고 직관적이라는 것이다. 또한, 다양한 클라이언트와 서버 간의 상호운용성
이 높고, 확장성
이 뛰어나기 때문에 대규모 웹 서비스에서 많이 사용된다.
단점
RESTful
아키텍처는 데이터의 무결성
, 보안
등에 대한 추가적인 처리
가 필요할 수 있다. 또한, URI가 너무 복잡하고 다양한 메서드를 사용하기 때문에, 구현하기가 어려울 수 있다.