스프링은 자바 언어 기반의 프레임워크
자바 언어의 특징은 객체 지향
스프링은 객체 지향 언어의 강력한 특징을 살린 프레임워크
스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와줌
객체 지향 특징
추상화 캡슐화 상속 다형성
객체지향 프로그래밍
명령어의 목록이 아닌 독립된 단위, 객체들의 모임으로 파악하고자 하는 것
유연하고 변경이 용이
레고 블록 조립하듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발하기 위해
다형성
운전자 역할, 자동자 역할이 있을 때 운전자는 자동차가 바뀌어도 운전을 할 수 있다.
클라이언트는 프로그램의 내부가 바뀌더라도 사용가능하다
새로운 기능이 나와도 클라이언트를 바꾸지 않아도 된다
역할과 구현을 분리
역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리하다
클라이언트는 대상의 역할(인터페이스)만 알면된다 내부 구조를 몰라도 된다
내부구조가 변경되어도 영향을 받지 않는다
대상자체를 변경해도 영향을 받지 않는다
자바 언어의 다형성을 활용
역할 == 인터페이스
구현 == 인터페이스를 구현한 클래스, 구현 객체
다형성의 본질
클라이언트를 변경하지 않고 서버의 구현 기능을 변경할 수 있다.
역할과 구현 분리의 한계
역할(인터페이스) 자체가 변하면 클라이언트, 서버 모두에 큰 변경이 발생
그럼에도 인터페이스를 잘 만들어야 구현체가 바뀌었을 때 애플리케이션이 흔들리지 않는다
728x90
'Spring' 카테고리의 다른 글
| 프로젝트 준비 (0) | 2024.02.07 |
|---|---|
| 좋은 객체 지향 설계 5가지 원칙(SOLID) (0) | 2024.01.13 |
| 스프링 가볍게 느껴보자 (4) (0) | 2024.01.13 |
| 스프링 가볍게 느껴보자 (3) (0) | 2024.01.11 |
| 스프링 가볍게 느껴보자 (2) (0) | 2024.01.10 |