ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링과 스프링 부트의 차이
    개발 2020. 12. 8. 12:04

    스프링 이란?

    자바 생태계에서 가장 대중적인 응용프로그램 개발 프레임 워크이다.

    의존성 주입(DI), 제어의 역전(IOC)은 스프링의 가장 중요한 특징으로 결합도를 낮추는 방식으로 애플리케이션을 개발할 수 있으며, 단위테스트가 용이하기 때문에 퀄리티 높은 프로그램을 개발할 수 있다.

     

    @Component : 스프링의 BeanFactory라는 팩토리 패턴의 구현체에서 bean이라는 스프링프레임워크가 관리하는 객체가 있는데 해당 클래스를 그러한 bean 객체로 두어 스프링 관리하에 두겠다는 어노테이션.

     

    @Autowired : 스프링 프레임워크에서 관리하는 Bean 객체와 같은 타입의 객체를 찾아서 자동으로 주입해주는 것. 해당 객체를 Bean으로 등록하지 않으면 주입해줄 수 없다.

     

    관점 지향 프로그래밍 (AOP)은 스프링 프레임워크에서 제공하는 아주 강력한 기능이다. 객체지향 프로그래밍에서 중요한 키포인트는 클래스라 생각하지만 AOP에서는 관점(Aspect)이다.

     

    기존 프로젝트에 새로운 기능 을 주입하고 싶을 때 기본 비즈니스 로직에는 손대지 않고 AOP를 추가할 수 있다. 메소드가 끝나는 시점이나 메소드 시작 직전 등 여러가지 상황에서 사용할 수있다.

     

    뿐만 아니라, 스프링은 스프링 만의 ORM을 가지고 있지는 않지만 Hibernate, Apache ibatis 등과 같은 ORM과의 우수한 통합환경을 제공한다.

     

    결론적으로 스프링은 웹 애플리케이션 개발 시 결합도를 낮추는 방향의 개발 방법을 제공한다.

     

    스프링부트란?

    스프링은 초기에 설정시 여러 의존성을 주입하는데 어려움이 있다.

    최소한의 기능으로 스프링MVC부터 시작하여 프로젝트를 세팅하는데 너무 많은 시간을 사용하게 된다. 스프링 부트는 이런 설정에 관련된 이슈를 해결하기 위해 생겼다.

    자동설정을 이용하였고 애플리케이션 개발의 필요한 모든 내부 의존성을 관리한다. 개발자가 해야 하는일은 애플리케이션 실행으로 축소하였다고 한다.

    스프링의 jar파일이 Classpath내에 존재 한다면 Dispathcer servlet으로 자동 구성하게 된다. 마찬가지로 Hibernate의 jar 파일 또한 존재할 경우 datasource로 자동 설정하게 된다. 이를 위해 스프링부트는 미리설정된 스프링 부트 스타퍼 프로젝트를 제공한다.

     

    '개발' 카테고리의 다른 글

    쿠키&세션  (0) 2020.12.23
    자바의 메모리관리, 가비지 컬렉션  (0) 2020.12.13
    MSA?  (0) 2020.12.04
    Rest API ?  (0) 2020.12.03
    이것저것 공부한거 (Proxy, Transaction)  (0) 2020.11.30
Designed by Tistory.