본문 바로가기
스프링

스프링 핵심 원리 - (1)

by 공부 안하고 싶은 사람 2021. 9. 10.
반응형

스프링 핵심 원리는

인프런 스프링 핵심 원리 기본편 (김영한)의 요약 내용입니다.

 

스프링과 객체지향 프로그래밍

 

역사 : EJB -> 스프링/JPA

  • 스프링 / 스프링 부트
  • 데이터 / 세션 / 시큐리티 / RestDocs / 배치 / 클라우드 / ...

 

 

스프링

  • 핵심기술 : DI, AOP, 이벤트, 기타
  • 웹기술 : MVC, WebFlux
  • 데이터 : 트랜잭션 ,JDBC, ORM, XML
  • 기술 통합 : 캐시, 이메일, 원격접근, 스케줄
  • 테스트 : 스프링 기반 테스트 지원
  • 언어 : 코틀린, 그루비

 

 

스프링 부트

  • 단독으로 실행할 수 있는 어플리케이션 생성
  • WAS 내장
  • 쉬운 빌드 구성을 위한 starter 종속성 제공 (하나로 여러 종속성 관리)
  • 3th party 자동 구성 (버전관리)
  • 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공 (Actuator)
  • 간결한 설정

 

 

스프링의 진짜 핵심은 좋은 객체 지향 애플리케이션을 개발할 수 있도록 도와주는 프레임웤

 

객체지향 : 추상화, 캡슐화, 상속, 다형성

 

다형성

  • 역할과 구현
    • 단순 / 유연 해진다.
    • 클라이언트는 역할(인터페이스)만 알면된다. (overriding으로 호출)
    • 내부구조를 몰라도 되며, 변경에 영향을 받지 않는다.
  • 운전자 역할 -> 자동차 역할 - 자동차 구현 (K3 / 아반떼 / 모닝)
  • 운전자는 구현체를 몰라도 되며, 교체가 가능하다
  • 대신에 인터페이스가 변경된다면, 많은 변경이 필요하다.

 

SOLID

  • SRP: 단일 책임 원칙(single responsibility principle)
    • 한 클래스는 하나의 책임만 가져야 한다.
  • OCP: 개방-폐쇄 원칙 (Open/closed principle)
    • 확장에 열려있고, 변경에 닫혀 있어야 한다.
    • 인터페이스를 활용 + 객체를 생성하고 연관관계를 맺어주는 별도의 조립, 설정자
  • LSP: 리스코프 치환 원칙 (Liskov substitution principle)
    • 정확성을 깨지지 않으면서 하위 타입의 인스턴스로 변경할 수 있어야한다.
  • ISP: 인터페이스 분리 원칙 (Interface segregation principle)
    • 범용 인터페이스 보다 역할이 분리된 인터페이스 여러개로 분할해야 한다.
  • DIP: 의존관계 역전 원칙 (Dependency inversion principle)
    • 추상화(역할)에 의존해야 하며, 구체화(구현)에 의존하면 안된다.
  • 다형성 만으로는 OCP, DIP를 지킬 수 없다.

 

 

스프링은 DI / DI 컨테이너로 OCP, DIP를 가능하게 한다. (클라이언트의 코드 변경 없이 기능 확장)

728x90
반응형

'스프링' 카테고리의 다른 글

스프링 핵심 원리 - (3)  (0) 2022.08.03
스프링 핵심 원리 - (2)  (0) 2021.09.10
필터 / 인터셉터 / AOP  (0) 2021.06.28
Spring  (0) 2021.06.28
Logback  (0) 2021.05.25

댓글