Spring Framework와 Spring Boot의 차이

신윤섭·2022년 10월 13일
0

Spring Framework의 특징

  • DI(Dependency Injection)

    • DI란 개발자가 Spring 프레임워크에 의존성을 주입하면서 객체 간 결합을 느슨하게 하는 것
    • 객체 간 결합이 느슨하면 코드의 재사용성이 증가하고, 단위 테스트가 용이해짐
  • IoC(Invesion of Control)

    • IoC는 컨트롤의 제어권이 개발자에게 있는 것이 아닌 프레임워크가 대신해서 해주는 것
    • Servlet이나 Bean 같은 코드를 개발자가 직접 작성하지 않고, 프레임워크가 대신 수행
    • 제어의 역전이라는 말이 어려울 수 있는데, 기존에는 자바 코드를 작성할 때 객체의 생성, 의존관계 설정 등을 개발자가 해줘야 했지만, 프레임워크가 대신해준다는 의미
  • AOP(Aspect Oriented Programming)

    • AOP는 핵심기능을 제외한 부수적인 기능을 프레임워크가 제공하는 특징
    • 예를 들어, Spring 프로젝트에 security를 적용하거나, logging 등을 추가하고 싶을 때 기존 비즈니스 로직을 건들지 않고 AOP로 추가할 수 있음

Spring Boot Framework와 Spring Framework의 차이점

1. Dependency

  • Spring Framework의 경우 dependency를 설정해줄 때 설정 파일이 매우 길고, 모든 dependency에 대해 버전 관리도 하나하나 해줘야 함
  • Spring Boot Framework의 경우 dependency를 Spring Framework보다 쉽게 설정해 줄 수 있고 버전 관리도 자동으로 해줌.

2. Configuration

  • Spring Framework의 경우 configuration설정을 할 때도 매우 길고, 모든 어노테이션 및 빈 등록 등을 설정해 줘야 함
  • Spring Boot Framework는 application.properties파일이나 application.yml파일에 설정하면 됨

3. AutoConfiguration

  • @SpringBootApplication
    • 이 어노테이션을 제거하고 프로그램을 실행하면, 일반적인 자바 프로그램과 동일하게 실행된다. 해당 어노테이션 덕분에 많은 외부 라이브러리, 내장 톰캣 서버 등이 실행될 수 있다.
  • @ComponentScan
    • @Component, @Controller, @Repository, @Service라는 어노테이션이 붙어있는 객체들을 스캔해 자동으로 Bean에 등록해 준다.
  • @EnableAutoConfiguration
    • @ComponentScan 이후 사전에 정의한 라이브러리들을 Bean에 등록해준다. 사전에 정의한 라이브러리들은 다음 경로에서 확인할 수 있다.
    • 하지만 사전에 정의한 라이브러리라고 전부 Bean에 등록되진 않는다.

4. 편리한 배포

  • Spring Framework로 개발한 애플리케이션의 경우, war파일을 Web Application Server에 담아 배포
  • Spring Boot Framework의 경우, Tomcat 이나 Jetty 같은 내장 WAS를 가지고 있기 때문에 jar 파일로 간편하게 배포할 수 있다.

결론

Spring Framework는 기존에 EJB(Enterprise Java Beans)를 대신해 자바 애플리케이션을 더 쉽게 만들 수 있게 해 주고,
Spring Boot Framework는 Spring Framework보다 개발자가 더더욱 개발에만 집중할 수 있도록 도와주는 프레임워크이다.

출처

0개의 댓글