본문 바로가기
프레임워크/Spring

[spring]스프링 핵심 원리 - 기본편 - 섹션1

by 오오오니 2022. 3. 20.

객체 지향 특징 - 추상화,캡슐화,상속, 다형성

스프링은 객체지향 언어인 자바 언어 기반의 프레임워크이며 좋은 객체 지향언어가 가진 특징을 잘 살려 좋은 객체 지향  애플리케이션을 개발할 수 있게 도와주는 프레임워크 


객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. (협력)

SOLID
클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리
•   SRP: 단일 책임 원칙(single responsibility principle)


    한 클래스는 하나의 크거나 작은 책임만 가져야한다. 기준이 중요한데

    객체의 생성과 사용을 분리 하는 것처럼 파급효과가 적으면  단일 책임 원칙을 잘 따른 것이다.


•   OCP: 개방-폐쇄 원칙 (Open/closed principle)


    소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.->다형성 활용

    문제점: 구현 객체를 변경하려면 클라이언트 코드를 변경해야한다. 다형성을 사용했지만 OCP원칙을 지킬수가 없다.

    이 문제를 스프링이 해결해준다.


•   LSP: 리스코프 치환 원칙 (Liskov substitution principle)

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

    
•   ISP: 인터페이스 분리 원칙 (Interface segregation principle)

    특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

•   DIP: 의존관계 역전 원칙 (Dependency inversion principle)

    구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻이다.

    역할에 의존하게 해야한다는 이야기다.

    객체 세상도 클라이언트가 인터페이스에 의존해야 유연하게 구현체를 변경할 수 있다.

 다형성 만으로는 OCP, DIP를 지킬 수 없다.

 

스프링은 다형성 + OCP, DIP를 가능하게 지원  

  • DI: 의존관계, 의존성 주입
  • DI 컨테이너 제공

 

 

책 추천해주셔서 사서 공부해야겠다.

출처;

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8

 

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com