오늘이라도

[I. 객체 지향 설계와 스프링] 2. 스프링이란? 본문

인프런/스프링 핵심 원리 - 기본편 (김영한)

[I. 객체 지향 설계와 스프링] 2. 스프링이란?

upcake_ 2021. 11. 30. 20:32
반응형

1. 스프링 생태계

  1) 필수

    ① 스프링 프레임워크

    ② 스프링 부트

  2) 선택

    ① 스프링 데이터

      - DB의 CRUD를 도와주는 기술

      - 대표적인 것이 스프링 데이터 JPA

    ② 스프링 세션

      - 세션 기능을 편리하게 사용할 수 있도록 도와주는 것

    ③ 스프링 시큐리티

      - 보안 관련

    ④ 스프링 Rest Docs

      - API 문서화를 편리하게 해주는 것

    ⑤ 스프링 배치

      - 예를 들어 천만건중 천 건씩 퍼올려서 처리하고 저장하고 하는 것을 배치라고 하는데, 배치 처리에 특화된 기술

    ⑥ 스프링 클라우드

      - 클라우드 기술에 특화된 기술

 

2. 스프링 프레임워크

  1) 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타

  2) 웹 기술 : 스프링 MVC, 스프링 WebFlux

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

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

  5) 테스트 : 스프링 기반 테스트 지원

  6) 언어 : 코틀린, 그루비

  7) 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용

 

3. 스프링 부트

  1) 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용

  2) 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성

  3) Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨

  4) 손쉬운 빌드 구성을 위한 starter 종속성 제공

    - 예전에는 여러 라이브러리를 직접 연결해야 함

    - 스프링부트 AOP 스타터, JPA 스타터 등등 편하게 하나만 당기면 스타터가 나머지 라이브러리까지 당겨줌

    - 굉장히 편해짐

  5) 스프링과 3rd party(외부) 라이브러리 자동 구성

    - 스프링 특정 버전과 외부 라이브러리와의 버전의 궁합, 조합을 자동으로 맞춰줌

    - 외부 라이브러리 버전을 크게 고민하지 않아도 됨

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

    - 운영 환경 모니터링이 중요한데, 스프링이 기본적으로 어느 정도 제공을 해줌

  7) 관례에 의한 간결한 설정

    - 예전에는 스프링 설정이 힘들었는데 스프링 부트는 기본적으로 어느정도 설정을 해줌

 

4. 스프링 단어?

  1) 스프링이라는 단어는 문맥에 따라 다르게 사용된다.

    - 스프링 DI 컨테이너 기술

    - 스프링 프레임워크

    - 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계

 

5. 스프링은 왜 만들었나요?

  1) 핵심 개념

    - 이 기술을 왜 만들었는가?

    - 이 기술의 핵심 컨셉은?

 

  2) 스프링의 핵심 개념, 컨셉?

    - 웹 애플리케이션 만들고, DB 접근 편리하게 해주는 기술?

    - 전자정부 프레임워크?

    - 웹 서버도 자동으로 띄워주고?

    - 클라우드, 마이크로서비스?

 

  3) 스프링의 진짜 핵심

    - 스프링은 자바 언어 기반의 프레임워크

    - 자바 언어의 가장 큰 특징 - 객체 지향 언어

    - 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크

    - 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크


https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/lecture/55328?tab=curriculum

반응형