[SpringBoot] 동작원리 하나하나 알기

임유빈·2022년 8월 5일
0

SpringBoot

목록 보기
7/10
post-thumbnail

1. 디스패처서블릿(dispatcherServlet)

디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있다. 그리고 이러한 단어를 포함하는 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있다.

2. 톰켓(Tomcat)

DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에 사용하며, Apache Tomcat(이하 Tomcat) 은 JSP페이지의 실행환경을 제공하는 웹 어플리케이션 서버이다(WAS). 동적인 데이터를 처리한다.

3. 뷰 리졸버(View Resolver)

ViewResolver는 사용자가 요청한 것에 대한 응답 view를 렌더링하는 역할로 간단히 말하자면 view 이름으로부터 사용될 view 객체를 맵핑하는 역할을 하며, 같은 이름의 HTML 파일을 찾아준다.

4. 타임리프 (Thymeleaf)

타임리프는 흔히 View Template(뷰 템플릿)이라고 부른다. 타임리프는 기존 템플릿 엔진과 다르게 순수 HTML을 유지하는 내추럴 템플릿으로서, 서버를 구동하지 않고 직접 파일을 열어도 내용을 확인할 수 있고 서버를 통해 뷰 템플릿을 거치면 동적으로 HTML을 생성한다.

5. 인터셉터 (Interceptor)

특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할을 한다.

6. @RequestMapping

기본적으로 어떤 HTTP메소드도 받을 수 있는 어노테이션으로 매개변수로 method를 받을 시 (GET, HEAD, POST, PUT, PATCH, DELETE) 특정 HTTP만을 받는다.

  • ex. @RequestMapping(value="/hello", method="RequestMethod.GET")

@Get,Post,Put,Delete,PatchMapping

편리하게 축약한 어노테이션으로 파라미터로 추가 매핑을 한다.

매핑이란 해당 값이 다른 값을 가리키도록 하는 것이다. 예를들면 http;//localhost:8080/action.do 라는 페이지를 만들었다고 했을시 이 url이 그대로 노출된다면 보안상 매우 취약 할 수 있다. 그래서 action.do가 아닌 ac.do가 action.do랑 똑같다는 식으로 설정하여 ac.do로 갔을 때 action.do로 가게하여 보안성을 높일 수 있다.

7. Model 객체

Model은 HashMap 형태를 갖고 있어 key값과 value값처럼 사용할 수 있다. Model 객체 안에 존재하는 addAttribute 메소드는 해당 메소드를 통해 해당 모델에 원하는 속성과 그것에 대한 값을 주어 전달할 뷰에 데이터를 전달할 수 있다.

Controller의 메서드는 Model이라는 타입의 객체를 파라미터(매개변수)로 받을 수 있으며 Model 객체를 사용하는 이유는 개발자가 직접 model을 생성할 필요가 없기 때문이다 > 파라미터로 선언만 해주면 스프링이 알아서 만들어준다. 전달될 때는 클래스명의 앞글자를 소문자로 처리하여 전달하며, 기본자료형(int, double등등)은 파라미터로 선언되었더라도 화면에 자동으로 전달되지 않는다.

0개의 댓글