개발 문서/Java
Spring Framework 소개와 기본 개념
copg
2023. 11. 12. 00:01
728x90
반응형
Spring Framework는 자바 기반의 엔터프라이즈 애플리케이션을 개발하기 위한 종합적인 인프라를 제공하는 경량화된 오픈 소스 프레임워크입니다. Spring은 여러 모듈로 구성되어 있어 각각의 모듈을 선택적으로 사용할 수 있습니다. 주요 특징은 다음과 같습니다.
주요 특징:
- 경량화 (Lightweight):
- Spring은 가볍고 최소한의 설정으로 개발을 가능케 하는 경량화된 프레임워크입니다.
- 제어의 역전 (IoC - Inversion of Control):
- 객체의 생성과 관리를 개발자가 아닌 프레임워크가 담당하는 제어의 역전 개념을 도입하여 객체 간의 결합도를 낮추고 모듈화를 촉진합니다.
- 의존성 주입 (Dependency Injection):
- IoC의 구현 방식 중 하나로, 객체가 직접 의존하는 객체를 생성하지 않고 외부에서 주입받는 방식을 제공하여 유연한 구조를 제공합니다.
- AOP (Aspect-Oriented Programming):
- 관점 지향 프로그래밍을 지원하여 핵심 비즈니스 로직과 각 로직에 공통으로 적용되는 부가적인 기능을 분리하여 관리할 수 있습니다.
- 트랜잭션 관리 (Declarative Transaction Management):
- 선언적인 방식으로 트랜잭션을 관리할 수 있어 코드에서 직접 트랜잭션을 처리할 필요가 없습니다.
- MVC 웹 프레임워크:
- 웹 애플리케이션의 개발을 위한 강력한 MVC 패턴을 제공하여 모델, 뷰, 컨트롤러의 분리된 개발을 가능케 합니다.
주요 모듈:
- Spring Core Container:
- IoC와 DI를 제공하는 핵심 컨테이너.
ApplicationContext
인터페이스를 기반으로 하는 컨테이너가 포함됩니다.
- IoC와 DI를 제공하는 핵심 컨테이너.
- Spring AOP:
- 관점 지향 프로그래밍을 구현하는 모듈. 트랜잭션 관리, 보안, 로깅 등 다양한 관심사(Aspect)를 구현할 수 있습니다.
- Spring JDBC:
- JDBC 작업을 간소화하고 선언적 트랜잭션 관리를 제공하는 모듈입니다.
- Spring ORM:
- 다양한 ORM 프레임워크를 지원하며, Hibernate, JPA 등과의 통합을 지원합니다.
- Spring MVC:
- 웹 애플리케이션의 모델-뷰-컨트롤러 아키텍처를 제공하는 웹 프레임워크.
기본 개념:
- Bean:
- Spring에서 관리되는 객체를 나타냅니다.
ApplicationContext
가 이를 생성, 관리하며, DI를 통해 의존성을 주입합니다.
- Spring에서 관리되는 객체를 나타냅니다.
- ApplicationContext:
- IoC의 핵심 컨테이너로서, Bean의 생성, 관리, DI를 담당합니다.
- Dependency Injection (의존성 주입):
- 객체 간의 의존 관계를 설정 파일(XML 또는 어노테이션)이나 Java 코드를 통해 주입하는 것을 의미합니다.
- Aspect:
- AOP에서 핵심 로직에 적용되는 부가적인 기능을 정의한 모듈입니다.
- Advice:
- Aspect에서 적용되는 실제 기능을 나타냅니다.
@Before
,@After
, `@Around` 등이 해당합니다.
- Aspect에서 적용되는 실제 기능을 나타냅니다.
- Pointcut:
- 어떤 메소드에 어떤 Advice를 적용할지를 정의한 표현식입니다.
- MVC (Model-View-Controller):
- 웹 애플리케이션을 개발하기 위한 아키텍처 패턴으로, 모델(데이터), 뷰(사용자 인터페이스), 컨트롤러(비즈니스 로직과 사용자 입력 처리)로 구분합니다.
Spring Framework는 유연하고 확장 가능한 구조를 가지고 있어서, 다양한 유형의 애플리케이션 개발에 사용됩니다.