[Spring]스프링 계층 구조 - Controller, Servcie, Repository, DAO, DTO, Entity
★ Spring 웹 어플리케이션 계층 구조 다음 그림은 스프링의 계층 구조를 전체적으로 나타낸 것입니다. 스프링의 웹 계층은 다음 4가지 계층으로 나뉩니다. Domain Model Presentation Model(Controller) Business
iridescent-zeal.tistory.com
- 계층구조는 레거시 한 이야기 이기도 함.
⭐️Application Layer
- HTTP : HTML 과 같은 문서를 전송하기 위한 프로토콜.
: 웹 브라우저와 웹 서버의 소통을 위해 디자인되었음.
Requests 요청
= POST, PUT, GET 과 같이 수행할 작업.
Response 응답
= 상태코드, 응답 헤더, 본문.
- API : Application Programming Interface : 애플리케이션이 어떤 프로그램이 제공하는 기능을 사용할 수 있게 하는 매개체.
: 컴퓨터나 소프트웨어를 서로 연결.
- HTTP API : 흔히 보는 open API 대부분이 HTTP 라는 통신 규칙으로 소통.
- REST API : Representational State Transfer. HTTP 의 장점을 최대한 활용할 수 있게 한 아키택쳐.
API, HTTP API, REST API 차이
기상청 날씨정보 API, 증권 API, 지도 API 등등 막연하게 API란 단어를 들어왔다. API를 가져다 써, API로 개발한다 등등 개념은 제대로 모르며 사용 해왔기에 이번엔 API에 대해 개념적으로 정리해보고
bentist.tistory.com
⭐️ Presentation Layer
- API 계층이다.
- 사용자와 시스템 사이의 상호작용 처리 계층 역할.
- 클라이언트(브라우저)의 요청을 받아 처리한 후 응답.
- 스프링의 Controller 가 이에 해당함.
1. 클라이언트로부터 요청이 서버에 들어옴.
서버의 요청이 DispatcherServelt 에 먼저 도달. 프론트 컨트롤러 패턴으로 구성되어있음. 모든 요청을 적절한 곳에 전달하는 역할.
2. 요청이 도착했으면 HandlerMapping 을 통해 요청을 처리할 적절한 컨트롤러를 찾게 됨.
3. 4. 5. 적절한 컨트롤러를 찾았으면, Dispatcher Servlet은, HandlerAdaper를 통해서 컨트롤러의 처리 메서드를 호출함.
6. 7. 비지니스 로직을 실행하고, 데이터와 뷰의 이름을 리턴.
8. 9. ViewResolver 로 검색 요청, 정보 리턴.
10. 11. 뷰는 모델 데이터를 사용해서 최종적으로 사용자에게 보여줄 화면을 생성함.
12. 생성된 뷰가 클라이언트 클라이언트 응답으로 전송됨.
* DispatcherServlet
- 실제 스프링 실행을 했을 때 최초 초기화.
HandlerMapping과 HandlerAdapter는 왜 나뉘었나요?
오늘은 제가 참여하고 있는 부트캠프 과정인 Kernel360 에서 유명 자바 강사이신 박은종 디렉터님과 함께 스터디를 진행하였습니다. 스터디의 주제는 Spring Web MVC Framework 이었고 그 중 해당 프레임
stonehee99.tistory.com
- MVC 라는 모델을 이미 스프링에서 구축을 해 놓고 있고, controller 를 사용하기만 하면 되는 것임.
- 스프링은 객체지향을 하기 위한 어플리케이션.
- servlet 은 http 통신에만 사용하는데, 스프링에서는 사용자가 서블릿을 직접 조절하지 않아도 되도록 함.
>>> 스프링에서는 객체지향 설계만 해.!!
https://velog.io/@oliviarla/HttpServletRequest-HttpServletResponse-%EA%B0%9D%EC%B2%B4%EB%9E%80
HttpServletRequest, HttpServletResponse 객체란
웹브라우저가 WAS에게 Servlet request\-> WAS는 HttpServletRequest 객체를 생성하여 저장응답을 보낼 때 사용하기 위해 HttpServletResponse 객체 생성\-> Servlet에게 두 객체 전달\-> doGet, doPost, S
velog.io
웹 애플리케이션 서버 : vs 웹 서버
- 웹 서버: 정적 페이지들의 집합
- 웹 애플리케이션 서버 : 동적 페이지들의 집합. client - server 톰캣.
* 클라이언트, 서버
- 클라이언트 : 서비스를 요청하는 애플리케이션 (컴퓨터, 브라우저)
- 서버 : 서비스를 제공하는 애플리케이션
[Spring] 클라이언트와 서버에 대해 알아보자
클라이언트와 서버 역할에 따라 클라이언트와 서버를 구분할 수 있다. 클라이언트(client): 서비스를 요청하는 애플리케이션(or 컴퓨터, 브라우저) 서버(server): 서비스를 제공하는 애플리케이션(or
byungmin.tistory.com
웹 서버가 앞에 있고 스프링 컨테이너 앞에 was가 있다.
서블릿 컨테이너와 스프링 컨테이너(Servlet Container, Spring Container)
서블릿 컨테이너란 웹서버 확장 프로그램의 하나이며 이름 그대로 여러 서블릿을 실행하거나 HTTP Response 생성하고 스레드, 세션 관리를 도와준다. 대표적으로 Tomcat, Jetty 등이 서블릿 컨테이너라
velog.io
서블릿(Servlet)이 뭔지 궁금해?
자바 웹기술 역사는 서블릿 → JSP → (서블릿 + JSP) MVC 패턴 → 스트럿츠, 웹워크 -> 스프링 MVC 요런식으로 발전해왔어요. 요즘은 Spring WebFlux라는 서블릿 기반이 아닌 Web Reactive 기반을 이용하기도
jh2021.tistory.com
⭐️ Business Logic Layer
- 컨트롤러에서 요청받고, 이 요청을 처리하기 위해 Business Logic Layer 로 보내서 처리함.
- Domain : 도메인을 기반으로 문제를 처리
- Service Layer : 도메인 로직을 작동하면서, 다른 기능들과 조립하면서 전반적인 비지니스 로직을 처리.
3계층 : Controller - Domain - DB
4계층 : Controller - Service - Domain -DB
⭐️ Data Access Layer
- 데이터베이스와 상호작용을 처리하는 역할
- DB 연결, 데이터 저장, 조회같은 역할 수행.
- @ Repository 어노테이션이 붙은 곳.
[Spring] 계층형 아키텍처 (Layered Architecture)에 대해서 알아보자
오늘은 계층형 아키텍처란 무엇인지 알아보겠습니다. 먼저, 계층형 아키텍처는 Layered Architecture 라...
blog.naver.com
'Spring > Spring Framework' 카테고리의 다른 글
[Spring] 용어 정리 (Spring Boot, IoC, DI, Bean, Singleton, Component Scan) (0) | 2024.06.07 |
---|