프레임워크 (Framework)
-애플리케이션을 개발할 때 전체 애플리케이션의 구조를 결정하는 아키텍처를 프레임워크가 제공
-개발에서 기본이 되는 뼈대나 틀을 제공
-개발자에 모든 것을 위임하는 것이 아니라 애플리케이션의 기본 아키텍처는 프레임워크가 제공, 그 뼈대에 살을 붙이는 작업을 개발자가 수행
프레임워크의 장점
1. 빠른 구현시간
: 아키텍처에 해당하는 골격코드를 프레임워크에서 제공, 개발자는 비지니스 로직만 구현하면 되므로 제한된 시간에 많은 기능 구현 가능
2. 쉬운 관리
: 같은 프레임워크가 적용된 어플리케이션들은 아키텍처가 같으므로 관리가 쉬움. 유지보수에 들어가는 인력과 시간 단축 가능
3. 개발자들의 역량 획일화
: 숙련된 개발자와 초급 개발자가 생성한 코드가 비슷해짐. 관리자 입장에서 개발인력을 더 효율적으로 구성 가능
4. 검증된 아키텍처의 재사용과 일관성 유지
: 프레임워크를 이용하여 애플리케이션 개발시, 프레임워크에서 제공하는 아키텍처를 이용하므로 아키텍처에 관한 별 다른 고민이나 검증없이 소프트웨어 개발 가능. 시간이 지나도 유지보수과정에서 아키텍처가 왜곡, 변형되지 않음
스프링프레임워크 특징
★IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크★
경량(LightWeight) |
크기측면에서 가벼움. 스프링은 여러개의 모듈로 구성, 각 모듈은 하나 이상의 jar파일로 구성. 이 몇 개의 jar파일만 있으면 개발과 실행이 모두 가능. 따라서 스프링을 이용해서 만든 애플리케이션의 배포 또한 빠르고 쉬움 |
제어의 역행 (Inversion of Control) |
애플리케이션을 구성하는 객체간의 느슨한 결합, 낮은 결합도 유지. 객체생성을 자바코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리. 객체와 객체사이의 의존관계 또한 컨테이너가 처리 -> 소스에 의존관계가 명시되지 않으므로 결합도가 떨어짐, 유지보수에 용이 |
관점지향 프로그래밍 (Aspect Oriented Programming, AOP) |
메소드 개발시 핵심 비지니스 로직과 각 비지니스 메소드마다 반복해서 등장하는 공통로직을 분리, 응집도가 높에 개발할 수 있도록 지원. 공통기능을 분리하여 관리할 수 있어서 응집도가 높은 비지니스 컴포넌트를 만들 수 있고 유지보수를 혁신적으로 향상시킬 수 있음 |
컨테이너 (Container) | 특정객체의 생성과 관리 담당, 객체 운용에 필요한 다양한 기능 제공. |
'건승하고있어요 > Spring framework' 카테고리의 다른 글
[Spring] 스프링1일차 - 의존성관리/생성자 인젝션(Constructor Injection) (2) | 2018.02.08 |
---|---|
[Spring] 스프링1일차 - 스프링 XML 설정 (0) | 2018.02.08 |
[Spring] 스프링1일차 - 스프링 컨테이너 및 설정파일 (2) | 2018.02.08 |
[Spring] 스프링1일차 - 환경설정하기 (5) | 2018.02.08 |
[MVC] MVC 패턴 (2) | 2018.02.08 |