Spring을 공부하면서 Spring과 SpringBoot의 차이점이 궁금했다. 우선 왜 스프링을 스프링이라할까?
Spring 어원
개발자들이 스프링을 사용하게되면서 추운 "Winter"는 끝이나고 이제 "Spring"이 왔다고해서 스프링으로 이름이 붙여졌다고한다.
이렇게 Spring이라는 이름으로 프레임워크를 사용하게되었고 이후에 나온 것이 SpringBoot이다.
Spring vs SpringBoot
Spring과 SpringBoot의 자세한 차이점은 무엇일까?
우아한Tech의 닉 개발자분께서는 봄 vs 조금더 봄 으로 표현하신다.
스프링부트 특징은
1) 쉽게 만들고
2) 단독적이며
3) 상용화 수준의
4) 스프링 기반 애플리케이션
이라는 특징으로 단지 실행만 시키면 된다.
본격적인 차이점은 아래와 같다.
1. Dependency
스프링에서는 dependency의 버전까지 하나하나 관리를 해주어야하지만 부트에서는 spring-boot-starter-test, spring-boot-starter-data-jpa 등 코드가 짧아지며 버전 관리를 권장 버전으로 자동으로 설정해준다.
2. Configuration
스프링의 경우 configuration 설정 시 매우 코드가 길어지고 어노테이션, 빈 등록을 하나하나 해주어야한다.
But, 부트를 사용하면 더 짧은 코드로 작성할 수 있고 application.properties 나 application.yml파일에 설정하면 된다.
*여기서 첨언으로 application.properties를 많이 사용했지만 요즘엔 application.yml로 yml파일을 더 많이 사용한다고 한다.
yml파일이 코드 가독성이 더 좋고 중복 코드를 줄여주기 때문!
3. Embedded Server
스프링의 경우 서버를 설치하고 war 파일을 Wbe Application Server에 담아 배포한다.
부트를 사용하면 내장 was 서버가 있기 때문에 jar 파일로 간편하게 배포가 가능하다. (tomcat, jetty 설정 가능하다)
Summary
SpringBoot를 사용하면
1. 간편한 설정
2. 편리한 의존성 관리 & 자동 권장 버전 관리
3. 내장 서버로 인한 간단한 배포 서버 구축
4. 스프링 Security, Data JPA 등의 다른 스프링 프레임워크 요소를 쉽게 사용
참조 :
https://www.youtube.com/watch?v=6h9qmKWK6Io
https://docs.spring.io/spring-framework/docs/current/reference/html/overview.html#overview
'스터디 > Spring' 카테고리의 다른 글
[Spring] 싱글톤 패턴 (Singleton pattern) (0) | 2021.08.17 |
---|---|
[Spring] Spring Container, BeanFactory 그리고 ApplicationContext (0) | 2021.08.17 |
[Spring] PSA (Portable Service Abstraction) 란? (0) | 2021.07.04 |
[Spring] AOP(Aspect Oriented Programming)란? (0) | 2021.07.04 |
[Spring] IoC와 DI (0) | 2021.07.04 |
댓글