Framework(Spring)

[Framework] 스프링 프레임워크(Spring Framework)

8기_이지정 2024. 7. 9. 12:31

스프링 프레임워크(Spring Framework)


 

1. 스프링 프레임워크(Spring Framework)

  • 자바 애플리케이션 개발을 위한 오픈 소스 프레임워크로 줄여서 스프링(Spring)이라고 불림
  • 동적인 웹 애플리케이션을 개발하기 위한 여러 가지 서비스를 제공하고 있으며 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있음

 

2. 스프링 프레임워크의 특징

  • 자바 개발의 복잡도를 간소화하기 위한 스프링 프레임워크의 특징은 다음과 같음

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

  • 설정 파일이나 어노테이션을 통해 객체 간의 의존 관계를 설정하여 개발자가 직접 객체 간의 의존 관계를 생성할 필요가 없음

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

  • 트랜잭션, 로깅, 보안 등 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리

2.3. POJO (Plain Old Java Object)

  • 일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어 개발이 쉬우며, 기존 라이브러리의 지원이 용이

 

3. 스프링 프레임워크의 동작 구조

  • 스프링 프레임워크 기반의 애플리케이션에서는 스프링 컨테이너 안에서 애플리케이션에서 필요한 객체가 생성되고 소멸
  • 즉, 스프링 컨테이너는 애플리케이션에서 필요한 객체를 생성하고, 객체들을 서로 연결하고, 소멸하는 등 객체의 생명 주기를 관리
  • 스프링 컨테이너가 어떤 객체를 생성하고, 객체들을 어떻게 연결할지는 개발자가 설정해야 하는데 설정 방식은 크게 XML, 자바, 어노테이션을 통한 오토 와이어링 방식이 있

 

4. 스프링 프레임워크의 구성 모듈

  • 스프링 프레임워크의 구성 모듈은 크게 6개의 카테고리로 구분되어 있음

4.1. 코어 컨테이너 계층

  • 애플리케이션에서 필요한 객체들의 생성, 설정 등의 처리 방법을 관리하는 컨테이너
  • 모든 스프링 관련 모듈은 이 코어 컨테이너 기반으로 구축

4.2. AOP 계층

  • 스프링은 AOP 계층을 통해 애스펙트 지향 프로그래밍(AOP)을 풍부하게 지원
  • AOP는 주로 애플리케이션 전체에 걸친 관심사와 각 객체 간의 결합도 낮추는데 이용

4.3. 데이터 액세스 / 통합 계층

  • JDBC나 데이터베이스에 연결하는 계층으로, 트랜잭션에 해당하는 기능을 담당하여 영속성 프레임워크와 연결을 담당
  • 이 모듈들을 이용하면 데이터 베이스 관련 코드를 깔끔하고 간단하게 만들 수 있고 데이터 베이스 리소스를 닫지 않아서 발생할 수 있는 문제를 예방할 수 있음

4.4. Web 계층

  • 스프링의 특징을 활용하여 객체 간의 결합도를 낮추는 MVC 관련 모듈들을 제공

4.5. 테스트 계층

  • 스프링에서 애플리케이션 테스트를 위한 모듈을 제공
  • 스프링 애플리케이션 컨텍스트에서 빈을 로드하고 이 컨텍스트에 있는 빈을 이용하여 테스트 코드를 작성할 수 있음