목록FRAMEWORK/SPRING (4)
nickjoIT
@Controller VS, @RestController (Controller와 RestController의 차이점) 전통적인 Spring MVC 컨트롤러와 Restful 웹서비스 컨트롤러의 주요 차이점은 HTTP Response Body가 생성되는 방식이다. 기존의 MVC 컨트롤러는 view기술을 사용하지만 Restful 웹서비스 컨트롤러는 객체를 반환하기만 하면 객체 데이터는 JSON/XML 형식의 HTTP 응답을 직접 작성하게된다.다시 정리하자면 @Controller의 주용도는 view(화면)을 리턴하는 것이고, @RestController는 데이터를 리턴하는 것이 주용도하고 할 수 있다. 물론 @Cotroller의 경우 메서드에 @ResposeBody를 사용하여 객체를 리턴할 수도 있다. Spri..
1. MVC- Model, View, Controller의 줄임말로써, MVC는 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가르킨다.1) Model- 프로그램의 내부 상태, 즉 프로그램의 정보(데이터)를 말하는 것이다. 2) Controller- 데이터와 비즈니스 로직 간의 상호 작용을 뜻함 3) View- 사용자 인터페이스 요소를 뜻하는데, 유저에게 보여지는 것을 말한다. 2. MVC1- JSP로 구현한 기존 웹 어플리케이션은 모델 1 구조로 웹 브라우저의 요청을 JSP 페이지가 받아서 처리 하는 구조이다.- JSP 페이지에 비지니스 로직을 처리 하기 위한 코드와 웹 브라우저에 결과를 보여주기 위한 출력 관리 코드가 뒤섞여 있는 구조- JSP 페이지 안에서 모든 정보..
1. 호출 시점이 다르다- 둘다 컨트롤러가 호출되기 전에 호출되어 실행되지만, Filter는 Dispatcher가 호출되기전에, Interceptor는 Dispatcher가 호출되고 난뒤 호출 된다.- 필터는 일반적으로 서블릿 컨테이너에서 제어하기 때문에 web.xml에서 정의하여야 하며, 스프링 애플리케이션에서 관리하는 빈을 DI로 받을 수 없다.- 인터셉터는 dispatcher-servlet.xml에서 컨트롤러에 대해 인터셉터를 정의하며, 스프링 애플리케이션에서 관리하는 빈을 DI로 받아서 사용한다. 2. 멤버함수의 용도가 다름1) Interceptor- preHandle: 컨트롤러가 수행되기 전에 호출된다. 처리결과에 따라 이후 컨트롤러를 수행할지 여부를 boolean으로 return 한다.- Po..
1. 정의- 기능을 핵심 비지니스 로직과 공통 모듈로 구분하고, 핵심 로직에 영향을 미치지 않고 사이사이에 공통 모듈을 효과적으로 잘 끼워 넣도록 하는 개발 방법- 공통 모듈(보안 인증, 로깅 같은 요소등)을 만든 후에 코드 밖에서 이 모듈을 비지니스 로직에 삽입하는 것이 바로 AOP적인 개발이다- 코드 밖에서 설정된다는 것이 핵심 2. AOP가 사용되는 경우- 간단한 메소드 성능 검사- 트랜잭션 처리- 예외반환- 아키텍처 검증 3. 용어1) Weaving: 분리한 관심사를 다시 모듈에 삽입하는것2) Advice: 관점으로 분리되고 실행시 모듈에 위빙된 구체적인 처리- Around Advice: Joinpoint 앞과 뒤에서 실행되는 Advice- Before Advice: Joinpoint 앞에서 실행..