스프링 유데미 강의 intro 부분-Spring5 특징 etc
what's new in Spring5
자바8 또는 그 이상으로 요구 사항 올라감
deprecated legacy integration(더 이상 사용되지 않는 레거시 통합):tiles, velocity, portlet, guava etc
Upgraded Spring MVC to new versions of Servlet API 4.0
Added new reactive programming framework: Spring WebFulx
자세한 것은 Spring5 Release Notes를 참고
Spring5 FAQ는 www.luv2code.com/spring-5-faq
Spring5 수업 github
GitHub - spring-projects/spring-framework: Spring Framework
Spring Framework. Contribute to spring-projects/spring-framework development by creating an account on GitHub.
github.com
spring의 목표
Ligthweigth development with Java POJOs (Plain-Old-Java-Objects)
Dependency Injection to promote loose coupling -loose한 결합을 위해 의존성 주입
Declarative programming with Aspect-Oriented-Programming (AOP)
Minimize boilerplate Java code-보일러플레이트 자바 코드 (
스프링 부트 특징-
자동 구성
스프링 부트는 많은 스프링 애플리케이션에 공통으로 필요한 애플리케이션 기능을 자동으로 구성해주었다.전통적인 스프링 애플리케이션에 있던 많은 보일러 플레이트 구성을 제거하였다.)
boilerplate-보일러 플레이트란?
보일러판(boilerplate)은 주간 신문들의 공통 기사나 진부하게 사용된 문장을 의미한다. 컴퓨터 프로그래밍에서 보일러판(boilerplate)은 작지만 대체할수 없고, 여러곳에 포함되어야 하는 코드 섹션을 설명하는 데 쓰이는 용어다. 이 용어는 verbose한 언어를 말할때 종종 사용한다. (예, 프로그래머가 매우 작은 일을 하기 위해서 많은 코드를 작성해야 하는 경우) 보일러플레이트의 사용은 메타 프로그래밍이나 convention over configuration같은 high-level 메커니즘을 통해서 줄일 수 있다. c 프로그램에서는 매우 자주 포함되는 라이브러리를 include하는 다음과 같은 코드들이다. #include <stdlib.h> 스프링 부트 에서는 예를 들어, 템플릿엔진으로 Freemarker를 사용해야한다면 기존엔 ViewResolver를 Bean으로 등록하고, prefix, suffix를 설정해야 한다. 하지만 스프링 부트의 경우에는 해당하는 의존성을 추가하기만 하면 별도로 설정이 필요 없어진다.
출처: http://julingks.tistory.com/entry/Boilerplate-code [My Tech Notes]
출처) https://incheol-jung.gitbook.io/docs/study/undefined-1/undefined
So in the early days of J2EE, there was a lot of code
that you had to write, and so the folks at Spring,
they created a collection of helper classes
to make it easier,
and again, to minimize all of the boilerplate code, ..
참고)
스프링 부트 특징-자동 구성
스프링 부트는 많은 스프링 애플리케이션에 공통으로 필요한 애플리케이션 기능을 자동으로 구성해주었다.전통적인 스프링 애플리케이션에 있던 많은 보일러 플레이트 구성을 제거하였다.
처음에 Container부터 먼저 보자.
Container는 hearttrob와 같다., 중심이 되면서
Container는 Beans이 어떻게 생성되는지를 관리한다.
Container는 Bean을 생성하는 Bean facotry가 있다.
얘는 재구성과 파일 properties 설정, 비의존성 그리고 Context는 Spring는 메모리의 Bean이 hold 하고 있는 것이다.
참고)Spring Context 란? Bean의 확장 버전으로 Spring이 Bean을 다루기 좀 더 쉽도록 기능들이 추가된 공간이다. 단순히 Bean을 다루는 것 이외에도 추가적인 기능을 수행합니다. Bean은 모두 Context안에서 이루어진다.
그리고 SpEL이 있는데 이거는 나중에 보자. 근데 이거는 Bean을 생성하고 쓸 수 있게끔 하는 Core Container의 한 종류다.
Factory for creating beans
Manage bean dependencies

AoP란? Aspect Oriented Programming을 하게끔 support 해준다. 또한 너가 이러한 application wide services(logging, security, transaction, instrumentation 같은 것)를 만들게 하고 이러한 서비스를 너의 objects에 적용할 수 있다.(declaritive fasion)
Data Access layer
데이터 베이스
message queue 이용
Spring은 JDBC에 접근하기 위한 helper class를 제공한다.
JDBC로 코드의 50% 이상 줄이기 가능
ORM - Object Relational Mapping
+참고자료)
[DB] 하이버네이트(Hibernate)란?
https://livenow14.tistory.com/70
[DB] 하이버네이트(Hibernate)란?
ORM 기술에 대한 명세인 JPA(Java Persistence API)의 구현체의 한 종류 JPA의 구현체이므로 JPA의 특징을 함께 정리했어요. Hibernate란? 하이버네이트는 자바 언어를 위한 ORM 프레임워크에요. JPA의 구현체
livenow14.tistory.com
객관적인 나의 상태 평가)스프링 입문을 위한 자바 객체 지향의 원리와 이해를 더 읽어서 스프링의 기본적인 키워드(AoP, Bean 등등)들을 잘 알아놔야 되겠다.