핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트 등웹 기술 : 스프링 MVC, 스프링 Webflux데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원기술 통합 : 캐시, 이메일, 원격접근, 스케줄링테스트 : 스프링 기반 테스트 지원언어 : 코틀린
객체들의 모임으로 파악. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.(협력)객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.레고 블럭 조립하듯이컴퓨터 부품 갈아 끼우듯이컴포넌트를 쉽고 유연
: 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리SRP : 단일 책임 원칙한 클래스는 하나의 책임만 가져야 한다.OCP : 개방-폐쇄 원칙소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.인터페이스를 구현한 새로운 클래스를
스프링은 DI, DI 컨테이너를 제공함으로써 다형성 + OCP, DIP를 가능하도록 지원한다.DI : 의존관계, 의존성 주입클라이언트 코드의 변경 없이 기능 확장쉽게 부품을 교체하듯이 개발모든 설계에 역할과 구현을 분리하자.이상적으로는 모든 설계에 인터페이스를 부여하자
기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 프름을 스스로 조종했다.AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당. 프로그램의 제어 흐름
생성자 주입생성자 호출 시점에 딱 한번만 호풀되는 것이 보장된다.불변, 필수 의존관계에 사용수정자 주입(setter)선택, 변경 가능성이 있는 의존관계에 사용필드 주입필드에 바로 주입하는 방법외부에서 변경이 불가능하여 테스트하기 힘들기 때문에 사용하지 않는 것이 좋다.
Servlet과 SpringServlet : HTML등의 웹 콘텐츠를 생성하고 전달하기 위해 Servlet클래스의 구현 규칙을 지켜 자바로 만들어진 프로그램Spring : 자바 엔터프라이즈 개발을 편리하게 해주는 오픈소스 경량급 애플리케이션 프레임워크GenericSer