To Do
- 스프링 핵심 원리 - 기본편 / 섹션 1 (객체 지향 설계와 스프링)
1. 스프링이 존재하기 전
- ejb를 사용했었다 -> jpa, spring 탄생
2. spring에서 제공하는 수많은 서비스 화인 (spring.io)
3. 스프링의 핵심 컨셉
4. 좋은 객체 지향 프로그래밍에 대해
- 다형성 : 유연하고 변경이 용이해야함.
- 역활과 구현으로 나뉘어야함
역할 = 인터페이스
구현 = 인터페이스를 구현한 것
즉, 클라이언트가 내부구조를 몰라도되며 클라이언트에 영향을 주지 않고 새롭게 구현 가능
실생활 예제)
자동자 -> 역할(인터페이스)
자동차 종류(K3,아반떼, 벤츠 등) -> 구현
운전자는 자동차의 종류와 상관없이 자동차라는 것만 알면 된다.
5. 좋은 객체 지향 설계의 5가지 원칙(SOLID)
1. SRP(single responsibility principle) : 단일 책임 원칙
- 하나의 클래스는 하나의 책임을 가져야 한다
- 변경을 가장 중요하게 생각해서 변경이 있을 때 파급 효과가 적어야 한다.
2. OCP(open/close principle) : 개방-폐쇄 원칙 (중요)
- 확장에는 열려 있으나 변경에는 닫혀 있다.
- 다형성
3. LSP(liskov substitution principle) : 리스코프 치환 원칙
- 인터페이스 규약을 지켜야 한다.
- 예를 들어 자동차 인터페이스의 엑셀은 앞으로 가는 기능이라는 원칙을 지켜서 구현해야 한다.
4. ISP(interface segregation principle) : 인터페이스 분리 원칙
- 범용 인터페이스를 여러 인터페이스로 잘 분리 해야 인터페이스가 명확해지고 대체 가능성이 높아진다.
5. DIP(dependency inversion principle) : 의존관계 역전 원칙 (중요)
- 추상화에 의존 해야한다. (즉, 구체화에 의존하면 안된다.)
- 구현 클래스를 집중하지말고 역할인 인터페이스에 집중해야 한다.
생각 정리
앞으로 쭉 강의를 들으며 알아야 할 목표 : 좋은 객체 지향 프로그램이 뭘까?
스프링 프레임워크가 제공하는 객체 지향 프로그램에 대해 이해하는 것이 목표!
'TIL & 일기 > TIL' 카테고리의 다른 글
TIL - 2023/07/12 (0) | 2023.07.12 |
---|