스프링 서버 구현
클라이언트에서 요청하는 것을 처리하고 응답하는 과정
api : 시스템, 프로그램간의 통신 규약, 규칙 등을 의미
web api : 웹 서버와 클라이언트 간의 통신을 위한 api를 지칭 -> 주로 HTTP 프로톨 위에서 동작
HTTP : 웹에서 데이터를 전송하기 위한 주요 프로토콜
GET
POST
PUT
DELETE
등 ->CRUD
를 주로 사용 /외에도 상태코드,헤더,바디 등
->REST
: WEB API 설계하는 주요 패러다임 ,CRUD
같은 매핑
RESTful
: 웹 서비스를 디자인하고 구현하는 데 사용되는 아키텍처의 규칙의 집합.->주로 HTTP 메서드 (GET, POST, PUT, DELETE 등)와 상태 코드, URI 디자인 규칙 등을 사용하여 웹 리소스에 접근하는 방식을 정의
🙆♂️ 기본적으로 RESTful 한 원칙을 지키며 설계
코드의 재사용성과 유지보수를 높이고, 개발자들 간의 협업을 용이하게 하기 위해서 사용.
Model
: 데이터와 관련된 로직을 관리
View
: 사용자에게 보여지는 부분을 관리
Controller
: 사용자의 입력을 받아 Model과 View를 연결
mvc 패턴을 사용해서 설계를 하면 -> RESTful 한 원칙을 지키며 설계가 가능하다
🤷♂️ 3Layer Architecture : controller / service / repository 의 차이점은?
현재는 프론트엔드와 백엔드와의 연결이 느슨해져 백엔드는 서버에만 더 집중하는 경향이 생겼다.
그래서 사용자 인터페이스 부분을 제외한 api 데이터만 주로 다루는 부분을 더 집중해서 나누었다.
Controller
: Presentation Layer (프레젠테이션 계층): 사용자 인터페이스와 관련된 부분이다. MVC의 View와 비슷
Service
: Business Logic Layer (비즈니스 로직 계층): 애플리케이션의 핵심 로직을 처리하는 부분이다. 여기서의 'Service'는 이 계층에 해당
Repository
: Data Access Layer (데이터 액세스 계층): 데이터베이스나 외부 서비스와의 통신을 담당하는 부분이다. 'Repository'나 'DAO'가 이 계층에 해당
3-Layer 아키텍처
는 큰 시스템을 구성하거나 엔터프라이즈 애플리케이션을 설계할 때 사용한다. 각 계층은 독립적이므로 유지 보수와 확장성이 좋다.
차이점으로는 MVC
는 사용자 인터페이스 중심의 디자인 패턴이고, 3-Layer
는 전체 시스템 아키텍처를 설계하는 데 초점을 맞춘 것이다.