Spring Framework란?

break 없는 while loop·2025년 3월 3일
post-thumbnail

1. Spring Framework

Spring Framework는 Java 기반 Application 개발을 단순화 시킨 오픈 소스 경량 Framework이다. 전통적인 엔터프라이즈 자바(EJB) 방식보다 훨씬 가볍고 유연하게 Appication을 개발할 수 있도록 지원하고(경량 및 모듈화), 복잡한 설정을 최소화하고 다양한 기능을 모듈 단위로 제공하여 개발자가 필요한 기능만 선택해 사용할 수 있도록 지원한다(개발 생산성 향상).

2. 핵심 개념

  • Dependecy Injection (DI) / Inversion of Control (IoC):
    • 정의: 객체 간의 의존성을 외부에서 주입 받아 관리하는 방식
    • 장점:
      • 코드 결합도가 낮아져 유지보수와 테스트가 쉬워진다.
      • 모듈 간 독립성이 강화되어 확장성이 좋다.
    • Aspect-Oriented Programming (AOP):
      • 정의: 로깅, 보안, 트랜잭션 관리 등 공통 관심사를 모듈화하여 핵심 비즈니스 로직과 분리하는 프로그래밍 기법
      • 장점: 코드 중복을 줄이고, 관심사의 분리를 통해 코드 가독성과 유지보수가 용이해진다.
      • https://velog.io/@kys6453/OOP-vs.-AOP-vs.-FP
    • 트랜잭션 관리:
      • 스프링은 선언적 트랜잭션 관리를 제공하여, 복잡한 트랜잭션 로직을 간단하게 처리할 수 있다.
      • 선언적 트랜잭션 관리는 코드 내에 직접 트랜잭션 관련 로직(시작, 커밋, 롤백 등)을 작성하지 않고, 외부 설정이나 어노테이션을 통해 트랜잭션의 경계와 속성을 지정하는 방식을 의미한다.

3. Spring의 주요 모듈과 기능

  • Spring Core:
    • DI와 IoC 컨테이너를 제공하여, 애플리케이션의 객체 생성과 의존성 관리를 담당한다.
  • Spring AOP:
    • AOP 기반의 프로그래밍 지원으로, 부가적인 기능(로깅, 보안 등)을 쉽게 적용할 수 있다.
  • Spring MVC:
    • 웹 애플리케이션 개발을 위한 모델-뷰-컨트롤러(MVC) 아키텍처를 지원한다. 요청과 응답 처리를 구조화하여 깔끔한 웹 애플리케이션을 개발할 수 있다.
  • Spring Data & Spring ORM:
    • 데이터베이스와의 연동을 쉽게 해주는 ORM 및 데이터 액세스 계층을 제공한다. Hibernate, JPA 등과의 통합이 수월하다.
  • Spring Security:
    • 인증과 권한 부여를 위한 보안 프레임워크를 제공하여, 웹 애플리케이션의 보안을 강화할 수 있다.
  • Spring Boot:
    • 스프링 프레임워크의 설정 복잡도를 줄이고 내장 서버와 자동 설정 기능을 통해 빠르게 애플리케이션을 시작할 수 있도록 도와준다.

4. Spring Framework의 장점

  • 유연성과 확장성:
    • 필요한 모듈만 선택해서 사용할 수 있어, 프로젝트에 맞게 맞춤형으로 구성할 수 있다.
  • 테스트 용이성:
    • DI를 통해 모의 객체(Mock)를 주입하여 단위 테스트가 쉽다.
  • 대규모 커뮤니티와 생태계:
    • 풍부한 문서와 예제, 그리고 다양한 서드파티 라이브러리 및 도구와의 연동으로, 개발자들이 문제를 해결하기 좋다.
profile
프로그래밍 지식 아카이브용

0개의 댓글