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

김예진·2023년 8월 27일

spring

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

스프링의 특징

  • DI(Dependency Injection, 의존성 주입) : 설정 파일이나 어노테이션을 통해 객체 간의 의존 관계를 설정하여 개발자가 직접 객체 간의 의존 관계를 생성할 필요가 없다.

  • AOP(Aspect Oriented Programming, 관점 지향 프로그래밍) : 트랜잭션, 로깅, 보안 등 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리한다.

  • POJO(Plain Old Java Object) : 일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어 개발이 쉬우며, 기존 라이브러리의 지원이 용이하다.

스프링의 동작 구조

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

코어 컨테이너 계층

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

AOP 계층

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

데이터 액세스 / 통합 계층

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

Web 계층

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

테스트 계층

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

profile
코린이

0개의 댓글