Spring 기본

gyubong park·2020년 11월 12일
0

스프링 사이드 스토리

1. 핵심개념

이 기술은 왜 만들었는가? 이 기술의 핵심 컨셉은?

  • 자바 언어 기반의 프레임워크
  • 객체 지향 언어를 개발할 수 있도록 도와주는 프레임워크!!
  • 좋은 객체 지향 어플리케이션을 개발할 수 있도록 프레임워크

2. 좋은 객제 지향이란?

객제 지향 프로그래밍

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것
각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있음

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용됨

다형성(Polymorphism)

  • 실세계의 역할과 구현이라는 편리한 컨셉을 다형성을 통해 객체 세상으로 가져올 수 있음
  • 확장 가능한 설계
  • 클라이언트에 영향을 주지 않는 변경 가능
  • 인터페이스를 잘 설계하는 것이 중요

스프링과 객체 지향

다형성이 가장 중요
스프링은 다형성을 극대화해서 이용할 수 있게 도와줌
스프링은 IoC, DI를 이용해 다형성을 활용, 이를 통해 역할과 구현을 편리할 수 있음

좋은 객체 지향 설계의 5가지 원치 (SOLID)

  • SRP : 단일 책임 원칙 - 변경이 있을 때 파급효과가 적다면 단일 책임원칙을 잘 따른것!
  • OCP : 개방-폐쇄 원칙 - 다형성을 이용, ex) 인터페이스 구현한 새로운 클래스 작성 <- spring Container
  • LSP : 리스코프 치환 원칙 - 하위 타입은 상위의 원칙을 지켜야 한다!
  • ISP : 인터페이스 분리 원칙 - 분리할 수 있으면 분리하는 것이 좋다!
  • DIP : 의존관계 역전 원칙 - 추상화에 의존, 구체화에 의존X!

스프링은...

스프링은 스프링에서 제공하는 기술로 다형성 + OCP, DIP를 가능하게 지원

  • DI(Dependency Injection) : 의존관계, 의존성 주입
  • DI 컨테이너 제공

클라이언 코드의 변경 없이 기능 확장
쉽게 부품을 교체하듯이 개발

profile
초보 개발자

0개의 댓글