스프링 3Layer Architecture

이해찬·2023년 8월 26일
0

항해일지

목록 보기
20/35

Controller / Service / Repository

🤷‍♂️왜? 3Layer로 나뉘어서 작업을 할까?

스프링 서버 구현
클라이언트에서 요청하는 것을 처리하고 응답하는 과정

api : 시스템, 프로그램간의 통신 규약, 규칙 등을 의미
web api : 웹 서버와 클라이언트 간의 통신을 위한 api를 지칭 -> 주로 HTTP 프로톨 위에서 동작
HTTP : 웹에서 데이터를 전송하기 위한 주요 프로토콜
GET POST PUT DELETE 등 -> CRUD 를 주로 사용 / 외에도 상태코드,헤더,바디 등
-> REST : WEB API 설계하는 주요 패러다임 , CRUD 같은 매핑

RESTful : 웹 서비스를 디자인하고 구현하는 데 사용되는 아키텍처의 규칙의 집합.->주로 HTTP 메서드 (GET, POST, PUT, DELETE 등)와 상태 코드, URI 디자인 규칙 등을 사용하여 웹 리소스에 접근하는 방식을 정의

🙆‍♂️ 기본적으로 RESTful 한 원칙을 지키며 설계


+ MVC 패턴 model / view / controller

코드의 재사용성과 유지보수를 높이고, 개발자들 간의 협업을 용이하게 하기 위해서 사용.
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는 전체 시스템 아키텍처를 설계하는 데 초점을 맞춘 것이다.

profile
디자인에서 개발자로

0개의 댓글