본문 바로가기

건승하고있어요/Spring framework

[Spring] 스프링1일차 - 프레임워크 개요

반응형

프레임워크 (Framework)

-애플리케이션을 개발할 때 전체 애플리케이션의 구조를 결정하는 아키텍처를 프레임워크가 제공

-개발에서 기본이 되는 뼈대나 틀을 제공

-개발자에 모든 것을 위임하는 것이 아니라 애플리케이션의 기본 아키텍처는 프레임워크가 제공, 그 뼈대에 살을 붙이는 작업을 개발자가 수행


프레임워크의 장점

1. 빠른 구현시간

: 아키텍처에 해당하는 골격코드를 프레임워크에서 제공, 개발자는 비지니스 로직만 구현하면 되므로 제한된 시간에 많은 기능 구현 가능

2. 쉬운 관리

: 같은 프레임워크가 적용된 어플리케이션들은 아키텍처가 같으므로 관리가 쉬움. 유지보수에 들어가는 인력과 시간 단축 가능

3. 개발자들의 역량 획일화

: 숙련된 개발자와 초급 개발자가 생성한 코드가 비슷해짐. 관리자 입장에서 개발인력을 더 효율적으로 구성 가능

4. 검증된 아키텍처의 재사용과 일관성 유지

: 프레임워크를 이용하여 애플리케이션 개발시, 프레임워크에서 제공하는 아키텍처를 이용하므로 아키텍처에 관한 별 다른 고민이나 검증없이 소프트웨어 개발 가능. 시간이 지나도 유지보수과정에서 아키텍처가 왜곡, 변형되지 않음


스프링프레임워크 특징


★IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크★

 경량(LightWeight)

 크기측면에서 가벼움. 스프링은 여러개의 모듈로 구성, 각 모듈은 하나 이상의 jar파일로 구성. 이 몇 개의 jar파일만 있으면 개발과 실행이 모두 가능. 따라서 스프링을 이용해서 만든 애플리케이션의 배포 또한 빠르고 쉬움

 제어의 역행 (Inversion of Control)

 애플리케이션을 구성하는 객체간의 느슨한 결합, 낮은 결합도 유지. 객체생성을 자바코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리. 객체와 객체사이의 의존관계 또한 컨테이너가 처리 -> 소스에 의존관계가 명시되지 않으므로 결합도가 떨어짐, 유지보수에 용이 

 관점지향 프로그래밍 (Aspect Oriented Programming, AOP)

 메소드 개발시 핵심 비지니스 로직과 각 비지니스 메소드마다 반복해서 등장하는 공통로직을 분리, 응집도가 높에 개발할 수 있도록 지원. 공통기능을 분리하여 관리할 수 있어서 응집도가 높은 비지니스 컴포넌트를 만들 수 있고 유지보수를 혁신적으로 향상시킬 수 있음

 컨테이너 (Container) 

 특정객체의 생성과 관리 담당, 객체 운용에 필요한 다양한 기능 제공.  




반응형