개발 시간을 줄이고, 코드의 재사용성을 증가시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형태로 제공되는 것을 말한다.
제어의 역전 개념이 적용된 대표적인 기술
이 둘의 차이점은 제어의 흐름에 대한 주도성이 누구에게 혹은 어디에 있는가가 다르다.
즉, 애플리케이션의 흐름을 누가 쥐고 있느냐에따라 달려있다.
데이터의 저장 조회 변경 삭제등을 다루는 클래스 및 설정파일들을
라이브러리화하여 제공하는 프레임워크 - mybatis, hibernate
java ee를 통해 웹 어플리케이션 개발에 초점을 두어 필요한 요소들을 모듈화하여
제공하는 프레임워크 - spring framework, struts
ioc, di, pojo, aop
컨트롤의 제어권이 개발자가 아닌 프레임워크가 주도하고있다는 뜻으로
객체의 생성과 생명 주기 관리를 개발자가 하는 것이 아니라 프레임워크가 담당하고있다.
설정 파일이나 어노테이션을 통해 객체간의 의존관계를 설정하며
개발자가 직접 의존하는 객체를 생성하지 않아도 된다.
순수 자바 객체를 의미하며
특정 기술이나 라이브러리 내용을 상속받지 않으므로 자바의 객체지향적인 설계가 보다 쉽다.
코드 길이 감소, 유지보수 증가, java api와 같은 라이브러리 사용이 용이하다
트랜잭션,로깅,보안 등과 같은 여러 모듈, 여러 계층에서 필요로 하는 기능의 경우
해당 기능들을 따로 분리하여 보관하는 것을 의미한다.
자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로 간단하게 스프링(Spring)이라고도 불린다.
동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있으며
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는
전자정부 표준 프레임워크(Spring MVC Project 기반 프레임워크)
의 기반 기술로서 쓰이고 있다.
dispatcher servlet이란, 프론트 컨트롤러 로써, 모든 요청을 받고 세부 컨트롤러로 요청을 뿌려준다.
즉 외부요청을 매핑해서 특정컨트롤러로 요청을 보내주는 역할을 하는 써블릿이다.
구성 요소 | 설 명 |
---|---|
DispatcherServlet | 클라이언트의 요청(Request)을 전달 받고, 요청에 맞는 컨트롤러가 리턴 한 결과 값을 View에 전달하여 알맞은 응답(Response)을 생성 |
HandlerMapping | 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정 |
Controller | 클라이언트의 요청을 처리한 뒤, 결과를 DispatcherServlet에게 리턴 |
ModelAndView | 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음 |
ViewResolver | 컨트롤러의 처리 결과를 생성할 View를 결정 |
View | 컨트롤러의 처리 결과 화면을 생성, JSP나 Velocity 템플릿 파일 등을 View로 사용 |