2022년 11월에 공부했던 내용으로... 복습도 어느정도 했지만 블로그에 올린적이 없어서 포스팅
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
스프링은 객체 지향언어가 가진 장점을 돋보이게 만드는 프레임 워크
# 그렇다면 객체 지향이란?
- 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위(객체)들의 모임으로 파악하고자 하는 것.
# 객체
- 여러 의견이 많지만 하나이상의 형태 또는 기능을 가지는 단위
# 객체지향의 특징
- 추상화
- 캡슐화
- 상속
- 다형성
다형성을 활용하여 역할(인터페이스)과 구현(구현 객체)를 분리하여 사용
=> 클라이언트를 변경하지 않고도 서버의 구현 기능을 유연하게 변경할 수 있게 된다.
유연하고 변경이 용이하고 확장이 가능한 설계가 가능해진다.
스프링에서는 다형성을 극대화 할 수 있도록
제어의 역전(IoC), 의존관계 주입(DI) 등을 지원한다.
-------------------------------------------------------------------------------------------
좋은 객체 지향 설계의 5가지 원칙
SRP 단일책임 원칙( Single responsibility principle)
: 한 클래스에는 하나의 책임만 가져야 한다(변경시 이상적으로는 변경되는 한부분만 고치면 돼야 한다.)
OCP 개방-폐쇄 원칙 ( Open / closed principle)
: 확장에는 열려있으나 변경에는 닫혀있어야 한다.
LSP 리스코프 치환 원칙 ( Liskov substitution principle)
하위 클래스는 인터페이스 규약을 다 지켜야 한다. 하위타입의 인스턴스로 치환 가능해야 한다.
ISP 인터페이스 분리 원칙 ( Interface segregation principle)
: 인터페이스는 분리할 수록 명확해지고 대체 가능성이 높아진다.
DIP 의존관계 역전 원칙 (Dependecy inversion principle)
: 추상화에 의존해야지, 구체화에 의존하면 안된다.
힘들게 영어까지 적은이유는 개념이 영어단어에 투영되어있기 때문(LSP 제외)
다만, 필자가 복습하기 위해 적는 것으로 뜻이 불명확해보일 수 있음
'language & Framework > Spring (boot)' 카테고리의 다른 글
spring legacy를 위한 eclipse, sts 설치, 기초 세팅 (0) | 2022.12.15 |
---|