본문 바로가기
Spring

스프링 프레임워크(SpringFramework)란?

by 더블오픈 2023. 5. 17.
반응형

 

 

 

Spring Framework란? 

스프링 프레임워크는 자바 개발을 편리하게 해주는 오픈소스 프레임워크 입니다.

 

  • 경량 컨테이너로 자바 객체를 직접 관리

각자의 객체 생성 , 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.

  • 제어의 역전(IoC)이라는 기술을 통해 어플리케이션의 느슨한 결합을 도모

컨트롤의 제어권이 사용자가 아닌 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.

  • 의존성 주입(DI, Dependency Injection)을 지원

각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜 준다.

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

트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 있다.

 

그렇다면 프레임워크는 정확히 무슨 뜻이며 라이브러리와는 차이점은? 

 

프레임워크(Framework)

  • 프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술입니다. 
  • 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합'이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야 합니다. 
  • 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나라고 있습니다.

라이브러리(Library)란 

  • 라이브러리는 단순 활용가능한 도구들의 집합을 말합니다.
  • , 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있습니다.

 

프레임워크와 라이브러리의 차이점

제어 흐름에 대한 주도성이 누구에게/어디에 있는가”에 있습니다.

즉. 어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐

프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣습니다.

라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있습니다.

다시 말해, 라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있으며

프레임워크는 그 틀 안에 이미 제어 흐름에 대한 주도성이 내재(내포)하고 있습니다.

프레임워크는 가져다가 사용한다기 보단 들어가서 사용한다는 느낌/관점으로 접근할 있습니다.

 

 

 

출처 : https://dev-coco.tistory.com/163

반응형