티스토리 뷰
스프링의 필수 : 스프링 프레임워크 , 스프링 부트
선택
스프링 데이터: 데이터베이스 - 기본적인 CRUD 비슷을 도와주는 기술(Spring Data JPA 많이 사용)
스프링 세션 : 세션 기능을 편리하게 도와주는 거
스프링 시큐리티: 보안 관련
스프링 Rest Docs: API 문서를 편리하게 해주는 거
스프링 배치: 실무에서는 천만명의 데이터를 실시간으로 업데이트 하는 거 어려움- 1000건 퍼올려서 저장 (배치 처리)
-배치처리에 특화
스프링 클라우드
- 클라우드 기술에 특화
스프링 홈페이지: spring.io/projects
스프링 프레임워크
1. 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타(모든 라이브러리 활용)
2. 웹 기술: 스프링 MVC, 스프링 WebFlux
3. 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원
4. 기술 통합: 캐시, 이메일, 원격 접근, 스케줄링
5. 테스트: 스프링 기반 테스트 지원
6. 언어: 코틀린
- 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용.
스프링 부트
1. 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용
2. 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
3. Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨.
과거의 방식: 빌드 -> Tomcat 서버라는 걸 받아서 별도로 설치
-> Tomcat 서버에 빌드한 스프링 프로젝트를 넣고 띄우고 복잡
하지만 스프링부트는 빌드하고 서버 띄우는 걸 자체적으로 하고 몇 초만에 띄어지는 장점
4. 손쉬운 빌드 구성을 위한 starter 종속성 제공
- 라이브러리를 편하게 하나만 땡기면 스타터가 나머지 라이브러리를 자동으로 땡겨오는 장점
5. 스프링과 3rd parth(외부) 라이브러리 자동 구성
- 버전을 지가 알아서 궁합을 맞춰서 자동으로 가져옴
6. 메트릭, 상태 확인 , 외부 구성 같은 프로덕션 기능 준비 기능 제공
- 운영: 모니터링 환경 중요, - 스프링 부트가 기본적으로 제공
7. 관례에 의한 간결한 설정
- 과거에는 설정하기 어려웠는데 설정이 정말 편리해짐.
오해하면 안되는 것: 기본적으로 스프링부트는 스프링 프레임워크와 별도로 사용할 수 있는 게 아님
- 스프링부트 - 중간에서 편리하게 해주는 기능을 제공
- 꼭 스프링 프레임워크를 사용해서 필요한 걸 땡겨오는 걸 하는 거임
스프링 단어?
- 스프링이라는 단어는 문맥에 따라 다르게 사용된다.
1) 스프링 DI 컨테이너 기술
- 스프링 Bean을 관리
2) 스프링 프레임워크
3) 스프링 부트 , 스프링 프레임워크 등을 모두 포함한 스프링 생태계
스프링을 왜 만들었을까?
핵심 개념: 매우 복잡하고 커보이지만 핵심을 알면 쉬워진다.
- 스프링은 자바 언어 기반의 프레임워크
- 자바 언어의 가장 큰 특징 - 객체 지향 언어
- 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
- 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크
과거에 EJB로 개발했을 때는 EJB에 의존적으로 개발을 해야하기 때문에 자바가 가진 객체지향의 장점을
하나도 활용하지 못함. - 그냥 EJB에 종속이 됨 -> 순수한 객체지향(POJO)으로 돌아가자-> 스프링 탄생
[출처] 인프런 - 스프링 핵심 원리 기본편 - 김영한님의 강의를 듣고 정리한 내용입니다.
'JAVA > Spring Framework' 카테고리의 다른 글
객체 지향 설계와 스프링 (0) | 2021.02.21 |
---|---|
좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2021.02.21 |
좋은 객체 지향 프로그래밍이란? (0) | 2021.02.21 |
좋은 객체 지향 프로그래밍이란? (0) | 2021.02.21 |
자바 진영의 추운 겨울과 스프링의 탄생 (0) | 2021.02.21 |