본문으로 바로가기

Spring 이론(재) - 특징과 의존성 주입

category 웹/Spring 2019. 7. 17. 17:51

Spring의 특징과 의존성 주입

Spring framework의 강점은 개발에 필요한 구조를 미리 코드로 만들어 놓았기 때문에

 

초보자여도 충분히 조립하여 개발을 진행할 수 있습니다. 또한 개발시간도 단축이 되구요.

 

스프링은 경량 프레임워크입니다. 즉 특정 기능을 위주로 간단한 jar 파일을 이용하여 모든 개발이 가능하도록 구성한

 

프레임워크입니다.

 

다른 프레임워크들과의 차별성

  • 복잡함에 반기를 들어서 만들어졌다.!!
    • 앞서 말한 경량 프레임워크!!
  • 프로젝트 전체 구조를 설계할 때 유용하다.
    • 개발자의 역량에 맡기는 경우가 아닌 어느 분야에 집중하는 것이 아니라 전체적으로 설계하는 용도!!
    • 즉 OOP 구조 ( 의존성 주입)
  • 다른 프레임워크들의 포용(공존)
    • 위에서 말한 전체 구조에 집중하여 다른 프레임워크와 공존한다.!!
    • 따라서 다른 프레임워크들 과의 공존을 위해 최소한의 수정이 가능!!
  • 개발 생산성과 개발 도구 지원
    • XML 지원으로 간편
    • 플러그인 업데이트 간편
    • STS, Eclipse, Intellij 모두 가능

스프링의 주요 특징

  • POJO 기반
    • 경량이지만 내부에 객체간 관계를 맺을 수 있는 특징
    • 관계를 맺을 시 별도의 API를 사용하지 않음
    • JAVA 코드를 이용해서 객체 생성하고 그대로 스프링에서 사용 가능하다는 말!!
    • 개발자가 특정 라이브러리, 컨테이너 기술에 종속적이지 않다는 것
  • 의존성 주입
    • 의존성이란 하나의 객체가 다른 객체 없이 제대로 된 역할을 수행할 수 없다는 것
    • 주입은 말 그대로 밀어 넣는 것
    • 즉 어떤 객체가 필요로하는 객체를 외부에서 밀어넣어준다.
    • 따라서 주입 받는 입장에서 커다란 신경쓸 필요가 없다.
    • A라는 객체가 B라는 객체가 필요하다라는 신호를 전송 ==> B객체를 외부에서 주입
    • 이를 ApplicationContext가 수행하고 관리(bean)
  • AOP 지원
    • 개발자가 비지니스 로직에만 집중하게 한다.
    • 반복적인 코드의 제거
    • 로그, 트랜잭션 처리, 보안
    • Aspect J 문법 사용
  • 편리한 MVC 구조
  • WAS의 종속적이지 않은 개발환경
  • 트랜잭션 지원
    • 데이터베이스 작업 시 업무가 여러 작업으로 이루어질 때 쉽게 트랜잭션을 처리해준다.

스프링 동작 과정

  1. Spring Framework 실행 시 스프링이 메모리 영역을 생성(Context). ==> ApplicationContext 생성
  2. 스프링이 객체 생성 관리하는 root-context.xml에서 <context:component-scan> 태그로 패키지 스캔
  3. @Component이 존재하는 클래스의 인스턴스를 생성
  4. 식당은 주방장을 필요로 하기 때문에 식당에 주방장을 의존 주입(@Autowired)

 

 

' > Spring' 카테고리의 다른 글

Spring 이론(재) - controller  (0) 2019.07.20
Spring 이론(재) - MVC구조  (0) 2019.07.18
Spring 이론(재) - 간단히 spring project 생성  (0) 2019.07.17
CKEditor 버전 문제 해결  (0) 2019.06.25
웹 시큐리티(Web Security)-5Day  (0) 2019.05.28