케이스윔의 개발 블로그

[Spring] 스프링 프레임워크란? 본문

Study/Spring Framework

[Spring] 스프링 프레임워크란?

kswim 2019. 1. 17. 16:21

Spring Framework

프레임 워크란? 개발할 때 설계 기본이 되는 뼈대나 구조/환경입니다. 개발자들이 개발을 하기위한 업무를 추상적으로 만들어 놓은 틀이기 때문에 자신이 필요한 기능만 구현해서 사용하면 됩니다. 

스프링 프레임워크는 자바플랫폼을 위한 오픈소스 애플리케이션 프레임워크입니다. 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해주는 도구로써 주요기능으로 DI, AOP, MVC, JDBC를 제공합니다.


스프링의 특징

  1. 크기와 부하의 측면에서 경량 컨테이너
  2. 제어 역행(Inversion Of Control): 말그대로 제어 흐름 구조가 바뀐 것입니다.(원래는 main()와 같이 프로그램이 시작되는 시점에서부터 각 객체들이 프로젝트의 흐름을 결정하고 사용합니다.) 하지만 스프링 프레임워크에서 각 객체은 어디서 만들어지는지 사용되는지 알 수 없습니다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출하여 사용됩니다. 
  3. 관점지향(AOP) 프로그래밍을 위한 풍부한 지원을 합니다. 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리할 수 있습니다.
  4. 애플리케이션 객체의 생명 주기와 설정을 포함하고 관리한다는 점에서 일종의 (스프링)컨테이너라고 할 수 있습니다. 객체 생성, 소멸과 같은 라이프 사이클을 관리해주고 스프링 컨테이너로부터 필요한 객체(Bean)를 얻어와 사용할 수 있습니다.
  5. 간단한 컴포넌트로 복잡한 애플리케이션을 구성하고 설정할 수 있습니다.
  6. POJO 방식의 프레임워크입니다. 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없습니다. 따라서 개발자는 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않고, 가장 일반적인 형태로 코드를 작성할 수 있습니다.-> 생산성 유리, 코드에 대한 테스트 작업을 유연하게 할 수 있습니다.
  7. 스프링은 의존성 주입(DI: Dependency Injection)을 지원합니다. 각각의 객체(Bean)나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜줍니다.(IoC를 구현하는 방법 중 하나)
  8. 확장성이 높습니다.
  9. MVC 패턴을 지원합니다.

스프링 프레임워크 모듈

  1. Spring-core: 스프링의 핵심인 DI(Dependency Injection)IoC(Inversion of Control) 제공

  2. Spring-aop: AOP 구현 기능 제공

  3. Spring-jdbc: 데이터베이스를 쉽게(적은 양의 코드로) 다룰 수 있는 기능 제공

  4. Spring-tx: 스프링에서 제공하는 트랜잭션 관련 기능 제공

  5. Spring-webmvc: 스프링에서 제공하는 컨트롤러와 뷰를 이용한 스프링 MVC 구현기능 제공

⇒ 모듈을 사용하려면 모듈에 대한 의존설정을 프로젝트에 xml 파일 등을 이용해서 개발자가 넣어줘야 합니다. 그러면 프로젝트가 알아서 라이브러리를 다운 받아줍니다.

 

스프링 컨테이너

- 스프링에서 객체를 생성하고 조립하는 컨테이너(객체가 담겨있는 큰 그릇), 컨테이너를 통해 생성된 객체를 빈(Bean)이라고 부릅니다.

- xml문서로 객체 생성 및 속성, 데이터 작성 스프링 컨테이너에서 객체 생성 및 조립이렇게 생성된 객체(Bean)를 통해 애플리케이션 구현


※ 인프런- 자바 스프링프레임워크(ver.2019) - 신입 프로그래머를 위한 강좌 를 수강 및 참고하였습니다. 

Comments