티스토리 뷰
본 게시글은 인프런 강의 스프링 핵심 원리 - 기본편 '강의자료'를 정리한 게시글입니다.
게시글 내용의 출처는 모두 해당 강의에 있습니다.
객체 지향 특징
- 추상화
- 캡슐화
- 상속
- 다형성
=> 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다
유연하고, 변경에 용이?
- 레고 블럭 조립하듯이
- 키보드 마우스 부품 갈아 끼우듯이
- 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법
- 역할과 구현으로 구분하는 것이 중요하다!
역할과 구현을 사물로 비유하기 위해 운전자-자동차 예시를 들어보자
운전자는 운전하는 방법만 알고 있으면, 자동차가 K3이건 아반떼이건 테슬라이건 구분하지 않고 운전할 수 있다.
역할과 구현 분리
역할과 구현으로 구분하면 단순해지고, 유연해지며 변경도 편리해진다.
- 클라이언트는 대상의 역할만 알면 된다 => 운전자는 자동차의 악셀, 브레이크의 역할만 알면 된다 !!
- 클라이언트는 구현 대상의 내부 구조를 몰라도 된다 => 운전자는 자동차의 내부 구조를 몰라도 된다 !!
- 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다 => 운전자는 자동차 구조에 영향 X
- 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다 => 운전자는 자동차에 따라 운전능력에 영향 X
자바 언어의 다형성 활용
- 역할 = Interface (인터페이스)
- 구현 = Class (인터페이스를 구현한 클래스)
- 객체를 설계할 때 역할과 구현을 명확히 분리
- 객체 설계시 역할(Interface)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
'Spring' 카테고리의 다른 글
[Spring] Spring Container(스프링 컨테이너) (0) | 2022.01.14 |
---|---|
[Spring] Spring DI(Dependency Injection) (0) | 2022.01.14 |
[Spring] 스프링이란? (스프링 프레임워크 VS 스프링 부트) (0) | 2021.08.05 |
[Spring] 스프링 라이브러리 살펴보기 (0) | 2021.07.20 |
[Spring] IntelliJ에서 Spring 프로젝트 생성하는 방법 (0) | 2021.07.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring
- dm-zoned 코드분석
- 스프링 부트
- 8주차 회고
- 파이썬
- dm-zoned
- 회고
- 알림개선기
- 3차 데모데이
- 환경 별 로깅 전략 분리
- 스프링 프레임워크
- 우테코 회고
- 네트워크
- java
- 팀프로젝트
- 스프링 Logback
- ZNS SSD
- ZNS
- 프로젝트
- 런칭 페스티벌
- jpa
- 알림기능개선기
- 2차 데모데이
- 5주차 회고
- CI/CD
- 피움
- 백준
- 스프링MVC
- 피움 6주차 회고
- 우테코
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함