back/spring
스프링 핵심1 - 스프링과 객체 지향 설계
코로그 주인장
2023. 3. 15. 16:26

- 추가 예정



- 스프링이라는 단어는 문맥에 따라 다르게 사용됨
1. 스프링 DI(Dependency Injection) 컨테이너 기술
2. 스프링 프레임워크
3. 스프링 부트, 프레임워크를 모두 포함한 생태계
- 스프링은 자바 언어 기반의 프레임워크
- 자바는 객체 지향 언어 (객체 지향 특징으로는 추상화/캡슐화/상속/다형성)
- 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는, 좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크
- 객체 지향 프로그래밍은 프로그램을 유연하고 변경에 용이하게 만듬 > 대규모 소프트웨어 개발에 사용됨
< 다형성 >


- 객체와 협력이라는 관계부터 생각하기!
- 클라이언트: 요청 / 서버: 응답
- 수많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.
- 다형성의 예시: 오버라이딩 / 인터페이스 구현 객체를 실행시점에 유연하게 변경 / 클래스 상속 관계(오버라이딩 적용 가능)




< 좋은 객체 지향 설계의 5가지 원칙 (SOLID) >
1. SRP(단일 책임 원칙)
2. OCP(개방-폐쇄 원칙)
3. LSP(리스코프 치환 원칙)
4. ISP(인터페이스 분리 원칙)
5. DIP(의존관계 역전 원칙)






- 객체 지향의 핵심은 다형성이지만, 다형성만으론 OCP / DIP 를 지킬 수 없다.
