본문 바로가기

Spring

[Spring] 스프링 프레임워크 개념

1.프레임워크 개념

프레임워크의 사전적 의미는 뼈대 또는 틀로서 소프트웨어 관점에서 접근하면 아케텍처에 해당하는 골격 코드이다.

애플리케이션을 개발할 때 가장 중요한 것이 전체 애플리케이션의 구조를 결정하는 아케텍처인데 이 아키텍처에 해당하는 골격코드를 프레임워크가 제공한다.

시스템을 개발하는 과정에서 대부분 개발자들은 산출물에 입각해서 개발하므로 아키텍처의 일관성이 잘 유지된다. 하지만 유지보수 과정에서 인력과 시간 부족으로 인해 산출물은 무시되기 쉽고, 개발자들의 경험에 의존하여 유지보수가 진행되는 경우가 많다.

프레임워크는 이러한 문제를 근본적으로 해결해준다. 애플리케이션을 개발할 때 기본이 되는 '뼈대'나 '틀'을 제공한다. 즉, 개발자에게 모든 것을 위임하는 것이 아니라 애플리케이션의 기본 아키텍처는 프레임워크가 제공하고, 그 뼈대에 살을 붙이는 작업만 개발자가 하는 것이다.

2.프레임워크를 사용하는 이유

잘 만들어진 프레임워크를 사용하면 애플리케이션에 대한 분석, 설계, 구현 모두에서 재사용성이 증가한다.

아키텍처에 해당하는 골격코드를 프레임워크가 제공하면서 개발자는 비즈니스 로직만 구현하면 된다. 즉, 제한된 시간에 많은 구현을 할 수 있게 되고 유지보수에 들어가는 인력과 시간도 줄일 수 있다.

3.스프링 프레임워크란??

스프링은 IoC(Inversion of Control)과 AOP(Aspect Oriented Programming)을 지원하는 경량 Container 프레임워크이다.

스프링 프레임워크는 POJO(Plain Old Java Object) 형태의 단순하고 가벼운 객체를 다루기 때문에 보다 경량화된 로직을 구성할 수 있고 관리가 쉽다는 장점이 있다.

또한, 비즈니스 컴포넌트를 개발하면서 낮은 결합도와 높은 응집도를 유지하는 것은 중요하다. IoC는 낮은 결합도와 관련된 기능을 제공하고, AOP는 높은 응집도와 관련된 기능을 제공한다.