hanseom 2020. 11. 13. 09:51
반응형

1. 장점

  1) 경량(light-weight) 프레임워크

  2) 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크

  3) 다른 프레임워크들 포용

  4) 개발 생산성과 개발 도구 지원

 

2. 특징

  1) POJO (Plain Old Java Object)

    > 일반적인 Java 코드를 이용하여 객체를 구성하는 방식 사용 가능

    > 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다는 것을 의미

  2) IoC (Inversion Of Control - 제어의 역행)

    > 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미

    > 개발자가 제어를 하지 않고, 프레임워크 내부에서 결정된 대로 이루어지는 현상

  3) DI (Dependency Injection - 의존성 주입)

    > 제어의 역행으로 특정 객체에 필요한 객체를 외부에서 결정해서 연결 시키는 것

    > 필요한 객체를 직접 생성하는 것이 아니라 외부로부터 필요한 객체를 받아서 사용하는 것

    > 스프링은 의존성 주입을 프레임워크에서 처리

  4) AOP (Aspect Oriented Programming)

    > 횡단 관심사 (cross-concer) : 비즈니스 로직은 아니지만 시스템이 공통으로 가지는 보안이나 로그, 트랜잭션과 같이 반드시 처리가 필요한 부분

    > AOP는 횡단 관심사를 모듈로 분리하는 프로그래밍의 패러다임

    > Spring은 AOP를 AspectJ 문법을 통해 작성, 이를 통해 개발자는 (1) 핵심 비즈니스 로직 집중 가능 (2) 각 프로젝트마다 다른 관심사 적용 시 코드 수정 최소 (3) 원하는 관심사의 유지보수가 수월한 코드 구성 가능

  5) Transaction 지원

    > annotaion이나 XML로 설정

 

 

반응형