Spring의 등장

core·2022년 7월 19일
0

spring핵심 개념

목록 보기
1/1
post-thumbnail

spring의 등장 배경

  • 2000년대 초반, 이 당시 개발자들은 java의 Enterprise Java Beans(EJB)를 사용했었음

  • EJB는 애플리케이션의 비즈니스 로직을 캡슐화하는 서버 측 소프트웨어 구성요소임

  • 하지만 EJB의 복잡성(그리고 EJB로직에 의존하며 코드를 짜야 하는 경우가 많았음), 느린 속도 때문에 EJB의 단점이 부각.

  • 그런 단점 때문에 다시 간단한 자바 오브젝트를 사용했던 시절로 돌아가고 싶은 개발자들이 많았다.
    -> Plain Old Java Object(POJO)

  • 이에 로드 존슨이 EJB의 문제점을 비판하고 이를 해결하기 위한 오픈소스를 담은 책을 발간
    -> 이 때 많은 개발자들이 로드 존슨의 오픈소스를 많이 사용하였다고 한다.
    -> 로드 존슨이 발간한 책에는 스프링 핵신 개념과 기반 코드가 들어 있다.

  • 유겐 휠러, 얀 카로프가 로드 존슨에게 오픈소스 프로젝트를 제안.

  • 얀 카로프는 J2EE(EJB) 겨울을 넘어 새롭게 시작하자는 의미로 프로젝트 이름을 spring으로 지었다.

문맥에 따른 spring의 의미

  • 스프링은 문맥에 따라 다음과 같은 의미를 가지고 있음
    -> 스프링 DI 컨테이너 기술(spring의 핵심이다)
    -> 스프링 프레임워크
    -> 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계

spring 존재의 핵심

  • 당시 java에서 EJB를 사용하려면 EJB의 있는 기능들에 의존해서 코드를 짜야했음
  • 의존해서 코드를 짜게 되면 객체 지향 언어가 가지는 의미가 사라지게 됨
  • spring객체 지향 언어가 가진 강력한 특징을 살려낸 프레임워크이다.
    -> 객체 간의 종속이 없다.
  • 그 때문에 좋은 객체 지향 애플리케이션을 개발할 수 있도록 도와줌

Spring Framework의 기술 소개

🔔 스프링의 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트

🔔 웹 기술: 스프링 MVC, 스프링 WebFlux

🔔 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원

🔔 기술 통합: 캐시, 이메일, 원격접근, 스케줄링

🔔 테스트: 스프링 기반 테스트 지원

🔔 언어: 코틀린, 그루비

Spring Boot 소개

✅ 스프링의 다양한 기능들을 편리하게 사용할 수 있도록 지원한다.

✅ Tomcat과 같은 웹 서버를 내장하므로 별도로 Tomcat을 설치할 필요가 없다.

✅ 손쉬운 빌드 구성을 위해 starter 종속성을 제공한다.

  • 스프링 프레임워크를 사용할 때 사용해야할 라이브러리들이 다양한데 starter를 통해서 필요한 라이브러리들을 전부 가져올 수가 있다.

✅ 스프링과 3rd parth(외부) 라이브러리 자동 구성한다.

  • 스프링 프레임워크 버젼마다 적용해야할 라이브러리들이 다를 수가 있는데 스프링부트는 스프링프레임워크의 버젼과 외부 라이브러리들과의 궁합을 직접 테스트해주고 적절한 버젼을 뽑아내주는 역할을 한다.

✅ 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공한다.

✅ 관례에 의한 간결한 설정을 해준다.

  • 스프링프레임워크에 대한 사전 설정의 복잡성을 해소해준다.
profile
코어의 서버 탐험기

0개의 댓글