본문 바로가기

인강 보습 (인프런,유데미,패스트캠퍼스)/인프런 스프링 핵심원리 기본편

230528 일요일 정주행

섹션1. 객체 지향 설계와 스프링

 

하이버네이트 를 가지고 JPA를 만듦 (JPA 구현체들) 

 

스프링과 JPA 두 개 중요하다. 

 

유겐 휠러가 로드 존슨에게 오픈 소스 프로젝트를 제안 ->  스프링의 핵심 코드 

         스프링이라는 뜻은 EJB라는 겨울을 넘어 새로운 시작이라는 뜻으로 지음 

 

2003년에 스프링 프레임워크 1.0 XML  ,    2014년 스프링 부트 1.0 출시   

 

스프링 생태계 

 

핵심개념, 컨셉 ->  좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 

 

객체지향 프로그래밍 : 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다. 

       다형성 ->  실행 시점에 유연하게 변경할 수 있다 

       역할과 구현을 분리 :  객체를 설계할 때 역할과 구현을 명확히 분리    

       인터페이스를 안정적으로 잘 설계하는 것이 중요 

       제어의 역전(IoC)와 의존성 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다 

 

좋은 객체 지향 설계의 5가지 원칙 :  

       단일책임원칙(SRP) : 단일 책임 원칙(SRP)는 객체는 단 하나의 책임만 가져야 한다는 원칙을 말한다. 여기서 '책임' 이라는 의미는 하나의 '기능 담당'으로 보면 된다.

       OCP 개방- 폐쇄 원칙 :  소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다

       LSP 리스코프 치환 원칙 : 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스 원칙을 바꿀 수 있어야 한다 

       ISP 인터페이스 분리 원칙 :  특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다 

       DIP 의존관계 역전 원칙 : 추상화에 의존해야지 구체화에 의존하면 안된다 

 

 

섹션2. 스프링 핵심 원리 이해1 - 예제 만들기 

프로젝트 생성 - start.spring.io 에서 프로젝트 생성   ->  Jar, Gradle , JDK 11   , JAVA17 , 

        

클래스 다이어그램, 객체 다이어그램 

 

 

테스트 -> @Test  /   given, when, then  / Assertions  

 

주문과 할인 도메인 설계 

 

discount, member, order 디렉토리 

 

 

 

 

섹션3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 

OCP, DIP 같은 객체 지향 설계 원칙을 준수한 것 처럼 보이지만 사실은 아닐 수 있다. 

        

생성자 주입과 DIP 

 

 

 

섹션4. 스프링 컨테이너와 스프링 빈 

 

섹션5. 싱글톤 컨테이너 

 

섹션6. 컴포넌트 스캔

 

섹션7. 의존관계 자동 주입

 

섹션8.빈 생명주기 콜백 

 

섹션9.빈 스코프 

 

섹션10.다음으로