본문 바로가기
🛠 BackEnd/Spring

Springframework

by 깸뽀 2022. 10. 6.
728x90

📌 스프링 프레임워크

  • 프레임워크는 소프트웨어 개발에 있어서 하나의 뼈대 역할을 하며, 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체를 말한다. 즉, 개발을 편하고 안정적으로 하기 위해 내부에서 모든 걸 해결할 수 있도록 제공하는 틀이다.
  • 스프링 프레임워크는 자바 플렛폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부표준프레임워크의 기반 기술로서 쓰이고 있다.

📌 스프링 프레임워크 특징

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

  • AOP는 비즈니스 메소드를 개발할 때, 핵심 비즈니스 로직과 로깅, 트랜잭션, 보안 등 여로 모듈 에서 공통으로 필요로 하는 로직을 분리함으로써 모듈의 독립성 즉, 응집도가 높아질 수 있도록 지원한다.

2. 의존성 주입(Dependency Injection, DI)

  • 설정 파일(XML)이나 어노테이션을 통해 객체 간 의존 관계를 설정하여, 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없다.
  • 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되어 있기 때문에, 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며, 모듈간의 결합도도 낮출 수 있다.계층, 서비스 간에 의존성이 존재하는 경우 스프링 프레임워크가 서로 연결시켜준다.

3. 제어 역전(Inversion of Control, IoC)

  • 기존에는 객체의 의존관계를 개발자가 직접 처리해 주곤 했다. 하지만 스프링에서는 객체 생성과 의존 관계를 자바코드로 직접 처리하는 것이 아니라 컨테이너가 라이프사이클, 클래스 등을 직접 처리한다. 즉, 개발자가 직접 제어하는 부분을 프레임워크가 대신 제어하게 되어 제어권을 가지게 되었다. 그래서 제어의 역전이라고 한다.

 

< 정리 >

  • 스프링은 프레임워크이다.
  • 스프링은 오픈소스이다.
  • 스프링은 IOC컨테이너를 가진다.
  • 스프링은 DI를 지원한다.
  • 스프링은 엄청나게 많은 필터를 가지고 있다.
  • 스프링은 엄청나게 많은 어노테이션을 가지고 있다. (리플렉션, 컴파일체킹)
  • 스프링 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
  • 스프링은 BufferedReader와 BuffereWriter를 쉽게 사용할 수 있다.
  • 스프링은 계속 발전중이다.
728x90

댓글