섹션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.다음으로
'인강 보습 (인프런,유데미,패스트캠퍼스) > 인프런 스프링 핵심원리 기본편' 카테고리의 다른 글
스프링 핵심 원리 이해2 - 객체 지향 원리 적용 (0) | 2023.03.08 |
---|