Yun-Yoseob / Study

0 stars 0 forks source link

Spring 사용하는 이유, Spring vs Spring Boot 차이 조사하기 #1

Open Yun-Yoseob opened 2 years ago

Yun-Yoseob commented 2 years ago

1. Spring을 사용하는 이유는 무엇일까?

2. Spring과 Spring Boot의 차이는?

Yun-Yoseob commented 2 years ago

1. Spring을 사용하는 이유는 무엇일까?

J2EE (EJB : Enterprise Java Beans)는 이기종에서 데이터를 통신하는 것을 의미한다.

J2EE 기술은 매우 복잡하고 어렵다. EJB의 단점을 스프링을 통해 다음과 같이 개선 되었다.

1. EJB는 단위테스트가 어렵다.

EJB 컨테이너 외부에서 실행하는 것이 어려웠다. 그러므로 테스트를 위해서 반드시 컨테이너에 배포해야 했다.

그러나, 스프링은 의존성 주입(Dependency Injection, DI)이라는 개념을 도입하면서, 단위 테스트를 위해 전체 애플리케이션을 배포할 필요가 없게 됐다. 단위 테스트 간소화의 이점은 생산성 향상, 빠른 결함 발견, 지속적인 통합(Continuous Integration, CI) 시 자동화된 단위 테스트로 향후 결함을 예방이 있다.

2. 복잡한 코드의 감소

모든 메서드에서 예외 처리를 구현하는 대신, 중앙 집중식 예외 처리를 수행하고 관점 지향 프로그래밍(Aspect Oriented Programming, AOP)를 사용해 주입할 수 있다.

3. 아키텍처의 유연성

스프링 프레임워크는 모듈 방식이다. 스프링 코어 모듈 위에 독립적인 모듈을 올려 완성한다.

스프링을 사용하는 이유는 즉, 기존 자바기반의 다른 프레임워크보다 테스트 하기 쉽고, 사용하기 간단하며, 유연한 아키텍처를 가졌고, 트렌드를 더 잘 반영하기 때문이다.

✔ 참고 자료 : Spring이름의 유래

What We Mean by "Spring"

J2EE 기술은 매우 복잡하고 어려워서, 자바에서 겨울이라고 표현하는데, 개발자들의 겨울이 끝났다고 해서 Spring이라고 이름이 붙었다고 한다.

2. Spring과 Spring Boot의 차이는?

Spring Boot의 특징

1. 내장 서버를 이용해 별도의 설정 없이 독립 실행이 가능한 스프링 애플리케이션
2. 톰켓, 제티 또는 언더토우와 같은 웹 애플리케이션(WAS) 자체 내장
3. 빌드 구성을 단순화하기 위한 'Spring Boot Starter' 의존성 제공
4. XML 설정 없이 단순 자바 수준의 설정 방식 제공
5. JAR를 이용해 자바 옵션만으로 배포 가능
6. 애플리케이션의 모니터링과 관리를 위한 스프링 액추에이터 제공

Spring Boot는 Spring을 보다 편히 이용할 수 있게 사용할 수 잇게 해준다.

  1. Dependency : Spring Boot의 Dependency가 Spring에 비해 훨씬 짧아졌으며, 버전 관리도 권장 버전으로 자동 설정할 수 있다.

    1. configuration : configuration이 Spring Boot에서 훨씬 간소화 되면서 application.properties 파일 적용으로 단순화 되었다.
  2. 내장서버 유뮤 : Spring은 외부에서 서버를 설치한 반면, Spring Boot는 내장서버를 이용해서 구동시간을 줄일 수 있다. 내장 서블릿 컨테이너 덕분에 jar 파일로 간단하게 배포 할 수 있다.