Spring
스프링 생태계에는 ...
필수
선택
- 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 배치, 스프링 클라우드, 스프링 Rest Docs
핵심 기술
- 스프링 DI 컨테이너, AOP, 이벤트, 기타
- 웹 기술 :스프링 MVC, 스프링 webFlux
- 데이터 접근 기술 : 트랜잭션, JDBC, ORM, XML
- 기술 통합 :캐시, 이메일, 원격접근, 스케줄링
- 테스트 :스프링 기반 테스트 지원
- 언어 :코틀린, 그루비
스프링 부트
- 스프링을 편리하게 사용할 수 있도록 지원, 최근 기본으로 사용
- 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
- tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하도 않아도 됨
- 손쉬운 빌드구성을 위한 starter 종속성 제공
- 메트릭, 상태확인, 외부 구성 같은 프로덕션 준비 기능 제공
- 관례에 의한 간결한 설정
- 어려웠던 설정을 손쉽게 해줌
- 스프링과 서드파티 라이브러리 자동 구성
- 예전에는 여러개 라이브러리를 땡겨와서 사용했었다.
- 과거에 호한이 되지 않는 경우도 있었다. 부트는 버전의 궁합을 보고 알아서 설치해준다. 버전에 대한 고민을 하지 않아도 되는 것
-> 스프링 부트는 중간에서 편리하게 사용할 수 있게 지원해주는 것임. 스프링 프레임워크를 기본으로 함. 부트만 이용하여 프로젝트를 하는 것이 아님.
스프링 단어?
- 스프링이라는 단어는 문맥에 따라 다름
- 스프링 DI 컨테이너 기술
- 스프링 프레임워크
- 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계
핵심 컨셉
로드 존슨의 3만줄의 코드에서 시작된다. 이 기술을 만든 이유에 대해 고민해봐야한다. 왜 개발자들이 편리한 오픈소스에 열광하는가?
핵심 컨셉과 이 기술을 왜 만들었는지 알아야 한다
API 사용법 뿐만 아니라 어떤 컨셉으로 만들었는지 공부하도록!
- 웹 애플리케이션 만들고 DB 접근?
- 전자 정부?
모두 아니고
- 스프링은 자바 언어 기반의 프레임워크
- 자바 언어의 가장 큰 특징 - 객체 지향 언어
- 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
- 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크
-> 순수한 객체 지향에 근간을 이룰 수 있다
좋은 객체지향이란 무엇인가?
참고