ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 프레임워크에 대하여 Araboza
    Development/Spring Framework 2020. 11. 14. 20:45

    스프링이란?

    흔히들 스프링으로 줄여말하지만 정확히는 스프링 프레임워크를 의미합니다. 오픈소스 플랫폼으로 자바언어 개발을 위한 방대한 기능을 포함하고 있습니다.
    (예를 들어 JPA, MyBatis, JSP 등을 효율적으로 이용하기 위한 기능이 포함)

    공공기관의 웹 애플리케이션을 개발할때 사용하는 전자정부 프레임워크도(eGovFrame) 스프링 프레임워크 기반입니다.

    주요 특징으로는 아래와 같습니다.

      - 의존 주입 (Dependency Injection : DI)
      - AOP (Aspect-Oriented Programming : 관점지향적 프로그래밍)
      - 컨테이너를 통하여 Java 객체의 LifeCycle을 관리 (Ex_ bean)
      - MVC 웹 프레임워크 제공
      - 제어의 역전 (이 내용은 이전 글인 프레임워크 와 라이브러리 차이점에서 설명한 개념입니다.)
      - JDBC, JPA 연동 , 선언적 트랜잭션 처리 등 DB 연동 지원
      - 그외 스케쥴링(쿼츠 기반), 메시지 연동, 이메일 발송, 테스트 등의 기능 제공
      - 경량화

    주로 사용하게 되는 모듈은 다음과 같습니다. [출처 : 위키피디아]

      - 제어 반전 컨테이너          
        프레임워크의 특징중 하나인 제어 반전은 스피링의 핵심정인 기능입니다. Java의 Reflection을 이용하여 객체의
        생명 주기 관리 및 의존성을 주입하여 각 계층과 서비스들간의 의존성을 맞춰줍니다. 
        이러한 환경 설정 정보들은 XML (properties)파일을 이용하여 설정하게 됩니다.

      - 관점 지향 프로그래밍 프레임워크
        관점 지향적 프로그래밍형태로 로깅/보안, 트랜잭션 등의 비즈니스로직과 관련이 없으나 공통적으로 쓰이는
        기능들을 분리하여 개발하고 실행 시에 조합 할 수 있도록 지원합니다.    

      - 데이터 액세스 프레임워크
        데이터베이스에 엑세스 하기 위한 JDBC, MyBatis, 하이버네이트를 지원합니다.

      - 트랜잭션 관리 프레임워크
         XML (properties)파일을 이용하여  추상화된 트랜잭션 관리를 지원합니다.
         Ex_ 특정 인터페이스(클래스)의 트랜잭션을 별도로 관리하도록 설정한다던지...

      - MVC 디자인 패턴
        Spring MVC라 불리는 패턴을 주로 사용하며, DispatcherServlet이 Controller 역할을 담당합니다.
        View의 경우 jsp를 자주 이용하기도 합니다.    

      - 배치 프레임워크
        특정 시간대에 실행하는 스케쥴링 기능이나, 대용량의 데이터를 처리하는 일괄처리 기능을 지원합니다.
        기본적으로 Quartz 기반으로 동작합니다.

    이 외에 DAO, ORM, Context 등의 개념도 알아야하지만.. 기본적으로 스프링 프레임워크를 이용하여 개발을 한다고 하면은 기본 적인 특징은 이해하고 사용하는것과 그렇지 않은것은 미미하지만 차이가 크다고 할 수 있습니다. (뭔말이래...)

    댓글

2017 TIFY Team All Rights Reserved.