본문 바로가기

반응형

좋아하는 것_매직IT

15.Spring, 스프링MVC의 핵심개념 중 세션속성(SessionAttribute)에 대해서 알아볼께요. 스프링MVC의 핵심개념인 세션 속성에 대해서 알아보자. 먼저, 세션 속성이 필요한 이유는? 특정 웹 사용자에 대해서 환경설정과 같은 요청 간 변경되지 않는 값들이 존재할 수 있는데, 보통 이런 값은 HTTP 세션에 저장됨. 그럼, 스프링MVC에서 세션을 위해 지원하는 어노테이션은 무엇일까? 정답 @SessionAttributes 부연설명하자면, 세션에 저장되는 속성을 지정하는 클래스 레벨의 어노테이션임. 컨트롤러 메소드가 생성하는 모델 정보 중에서 @SessionAttributes에 지정한 이름과 동일한 이름이 있다면, 이를 세션에 저장해 줌. SessionAttributes을 담은 객체는 SessionStatus의 setComplete()를 호출해 주기 전까지는 계속 담겨있음. 예시 설명 Session.. 더보기
14.Spring, 스프링MVC의 핵심개념 중 모델속성(ModelAttribute)에 대해서 알아볼께요. 스프링MVC의 핵심개념 중 모델속성에 대해서 알아보자. 우선, 우리가 해야할일은 뭘까? 바로, @ModelAttribute 어노테이션에 대해서 머리속에 정의를 가지고 있어야한다. 그럼, 한번 정의해보자. ModelAttribute 이 어떤 어노테이션인지.. 간단하게 말씀드리면, 스프링 MVC 에서 콘트롤러 웹브라우저가 Domain Model(객체) 로 넘겨주는데, 아래 2가지 케이스가 가능하다. 첫째, @RequestParam을 사용해서 파라미터를 한개씩 한개씩 받는 방법 둘째, @ModelAttribute을 사용해서, 스프링MVC에서 알아서 변환과정을 통해서 Domain Model(객체) 바인딩을 하는 방법 즉, 정리하자면, @ModelAttribute을 사용하면, 스프링MVC에서 알아서 변환과정을 통.. 더보기
13.Spring, 스프링MVC의 핵심개념 중 인터셉터(Interceptor)와 핸들러매핑(HandlerMapping)에 대해서 알아볼께요. 인터셉터 / 핸들러매핑에 대해서알아보자. 인터셉터란 무엇일까? 인터셉터란, 웹브라우저에서 특정 URI로 요청할 경우, 핸들러(Controller)로 가는 요청을 가로채는 역할하며, 아래 플로우를 따름 preHandle -> (Handler call) -> postHandle -> (요청처리완료) -> afterCompletion 즉, 해당 preHandle / postHandle / afterCompletion 메소드 를 구현하여 특정 로직을 수행하게 만들 수 있음. (참고)Spring MVC request life cycle 출처 및 참고페이지 https://justforchangesake.wordpress.com/2014/05/07/spring-mvc-request-life-cycle/ 설명 위 그림.. 더보기
12.Spring, 스프링MVC의 핵심개념 중 뷰(View) 리솔루션 에 대해서 알아볼께요. 스프링MVC 에서 뷰(View) 리솔루션에 대해서 알아보자 스프링MVC에서 View 는 웹 애플리케이션 컨텍스트에 하나 이상 선언된 뷰 리졸버 Bean을 해석함. 즉, 뷰 리졸버 Bean 은 DispatcherServlet 이 자동 감지 할 수 있도록 ViewResolver 인터페이스를 구현해야함. 스프링MVC는 매우 유연한 뷰 리솔류션을 제공함. 주요 다중 뷰 분석 전략 InternalResourceViewResolver 템플릿의 이름과 위치에 뷰를 직접 매핑하는 뷰 리솔루션 XmlViewResolver 외부 XML 구성을 기반으로 한 뷰 리솔루션 ResourceBundleViewResolver XML 구성파일말고 리소스 번들에 뷰 Bean을 선언하는 뷰 리솔루션 ContentNegotiatingVie.. 더보기
11.Spring, 스프링MVC의 핵심개념 중 RequestMapping 에 대해서 알아볼께요. RequestMapping이란? 말 그대로, URI를 컨트롤러 or 컨트롤러 메소드에 매핑하는 데 사용됨. 그럼, 어느 레벨에서 수행할 수 있을까요? 정답은 클래스 메소드 그리고, 선택적 메소드 파라미터를 사용하면 메소드를 특정 요청 메소드에 매핑할 수 있음. GET, POST 등등 추가적으로 아래와 같은 요청 메소드별 전용 어노테이션도 존재함(스프링 4.3 이후 도입) 요청메소드 애노테이션 비고 POST @PostMapping GET @GetMapping DELETE @DeleteMapping PUT @PutMapping 설명 위의 어노테이션을 사용하면 핸들러 메소드를 조금 더 간결하게 코딩하게 해줌. 예시 전용 어노테이션을 아래와 같이 사용해도 위와 동일함 그럼, RequestMapping 요청에 대.. 더보기
10.Spring, 그럼 스프링 MVC 아키텍처가 어떻게 동작을 하는지 간단하게 알아볼까요? 스프링 MVC 아키텍처의 동작 순서 및 핵심 컴포넌트에 대해서 알아보자. 스프링 MVC 아키텍처의 주요 컴포넌트 설명 플로우 뷰가있고, ModelAndView를 사용하는 컨트롤러 단계 1단계 1-1.웹 브라우저는 특정 URL에 Request 를 보냄. 1-2.프론트컨트롤러(DispatcherServlet)가 해당 Request 를 수신함. 이전 블로깅에서 설명한 것처럼, DispatcherServlet 은 모든 요청을 처리함. 2단계 2-1.DispatcherServlet 은 URI를 보고, 이를 실제 처리하기 위한 올바른 컨트롤러를 식별함. 즉, 올바른 컨트롤러를 식별하는데, Handler Mapping 과 통신하게됨. 2-2.Handler Mapping은 요청을 처리하는 특정 핸들러 메소드를 반환함... 더보기
9.Spring, 자바(JAVA) 관련 웹 애플리케이션 아키텍처와 스프링 MVC에 대해서 알아보자. 자바(JAVA) 웹 애플리케이션 아키텍처에 대해서 알아보자. 아래와 같이 아키텍처는 수십년간에 걸쳐서 진화해옴. 모델 1 아키텍처 모델 2 or MVC 아키텍처 프론트(front) 컨트롤러가 있는 모델 2 우선, 모델1 아키텍처에 대해서 알아보자 모델1 아키텍처 설명 자바기반 웹플리케이션을 개발하는데 사용되었던 초기 아키텍처. 그림과 같이 JSP 페이지는 웹 브라우저 요청을 직접 처리했음. JSP 페이지는 자바 빈(JAVA Bean)을 포함하는 모델을 사용함. 일부 애플리케이션에서는 JSP 가 DB에 대한 쿼리를 수행하기도 함. 위의 아키텍처는 많은 단점이 존재했음. 첫째, 어려운 관점 분리 데이터 검색, 데이터 표시, 다음에 표시할 페이지, 비즈니스 로직등등을 JSP 에서 담당함. 다시말해서, 관점이 .. 더보기
8.Spring, 스프링 빈(Bean) 스코프와 중요한 어노테이션에 대해서 알아봅시다. ^^ 스프링 빈(Bean) 스코프(Scope) 에 대해서 알아보자 스프링 빈은 여러 스코프로 생성할 수 있음. 기본 싱글톤(Singleton) 싱글톤 빈의 인스턴스는 하나. 요청(request)과 관련된 데이터를 포함할 수 없음. 스코프(Scope) 는 모든 스프링 빈에서 아래 어노테이션과 함께 제공될 수 있음. @Scope 예시 그럼, 다양한 스코프에 대해서 알아보자. 스코프 설명 비고 싱글톤(Singleton) - 기본적으로 모든 빈의 스코프는 싱글톤임. - 스프링 IoC 컨테이너 인스턴스당 오직 하나의 빈 인스턴스만 사용됨. - 빈에 대한 여러 참조가 있더라도, 컨테이너당 한번만 작성됨. - 싱글톤 인스턴스는 캐싱돼 이 빈을 사용하는 모든 후속 요청에 사용됨. - 스프링 싱글톤 스코프가 하나의 스프링 컨.. 더보기

반응형