Spring Boot. 스프링의 탄생 배경

Konseo·2022년 2월 5일
0

spring boot

목록 보기
2/8

스프링의 핵심 가치

객체 지향 프로그래밍. 스프링을 배움과 동시에 객체 지향 설계를 고민하는 개발자로 성장할 수 있다.

스프링의 탄생

참고 https://hoon93.tistory.com/56

EJB (Enterprise Java Bean)

먼저 java bean이란 java 객체를 재사용할 수 있도록 즉, 컴포넌트화시킬 수 있는 코딩 방침을 정의해 놓은 것 (bean=component=객체)

EJB란 엔터프라이즈급 어플레이션 개발을 단순화하기 위해 발표한 스펙.
개발을 하다보면 많은 객체들을 만나게 되는데, 이러한 비즈니스 객체들을 관리하는 컨테이너를 만들어서 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리하면 효율적이겠다! 라는 것에서 탄생

But 취지는 좋았으나
1. 서비스가 실제 구현해야하는 실제 비즈니스 로직보다 EJB 컨테이너를 사용하기 위한 상투적인 코드들이 많다는 불편함
2. 설정이 매우 복잡하다는 한계점이 있었다.

스프링의 탄생

EJB는 컨테이너로부터 필요한 객체를 꺼내쓰는 방식으로 객체들 간의 의존성을 해결하려는 것이었지만, 비즈니스 로직에 특정 기술이 종속된다는 것이 가장 큰 문제 였다. 이에 2002년 로드 존슨이 이를 지적하며 책 출간. 특정 클래스나 인터페이스를 구현하지 않는 평범한 자바 클래스(POJO(plain old java Object))를 이용한다

EJB의 대체, 단순함의 승리(경량급), 사실상 표준 기술


스프링은 위 그림과 같은 여러 객체들을 의존성 해결(DI) 및 제어(IOC)하며 객체들의 라이프 사이클을 관리해줍니다.

즉, 특정 기술에 종속되지 않고 객체를 관리할 수 있는 컨테이너를 제공하는 것이 스프링의 기본 철학

스프링이란?

필수

  • 스프링 프레임워크 : 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크
  • 스프링 부트 : 스프링 프레임워크를 사용하기 위한 설정의 많은 부분들을 자동화하여 편리하게 스프링을 활용할 수 있도록 도움

선택

  • 스프링 데이터 : CRUD를 편리하게. 스프링데이터 JPA를 가장 많이 사용
  • 스프링 세션 : 세션 관련 기능
  • 스프링 시큐리티 : 보안 관련 기능
  • 스프링 Rest Docs : 문서화를 편리하게
  • 스프링 배치 : 실무에서는 천만명의 데이터 업데이트 하기 어려움. 배치처리에 특화
  • 스프링 클라우드 : 클라우드 처리에 특화된 기술

스프링 프레임워크

핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트
웹기술 : 스프링 MVC, 스프링 WebFlux
데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원
기술 통합 : 캐시, 이메일, 원격접근, 스케줄링
테스트 : 스프링 기반 테스트 지원
언어 : 코틀린, 그루비

일단은 이런것들이 있다고 맛만 보고 넘어가자

스프링 부트

스프링을 편하게 사용할 수 있도록 지원, 최근에는 기본으로 사용
단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
Tomcat같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
손 쉬운 빌드 구성을 위한 starter 종속성 제공
스프링과 서드파티(외부) 라이브러리 자동 구성
메트릭, 상태 확인, 외부 구성과 같은 프로덕션 준비 기능 제공
관례에 의한 간결한 설정

Fin. 스프링의 핵심

스프링은 자바 언어 기반의 프레임워크
자바 언어의 가장 큰 특징 -> 객체 지향 언어
스프링은 객체 지향 언어가 가진 가장 강력한 특징을 살려내는 프레임워크
스프링은 좋은 객제 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크

profile
둔한 붓이 총명함을 이긴다

0개의 댓글