Spring

Spring을 사용하는 이유 ( 객체 지향의 원칙 )

curiousKidd 2022. 4. 12. 19:42
반응형

Spring Core

spring 개발 이유

EJB(Enterprise Java Bean) 기존 사용 개발툴을 사용하던 사람들이 너무 불편함을 호소했고,
그중 로드 존슨이라는 사람이 EJB의 문제점을 지적하면서 개발되기 시작했다.

EJB 컨테이너를 활용해서 객체지향 설계를 하게 될 경우, 
서비스 로직을 구현하는 영역보다 객체지향언어의 원칙을 지키기 위한 로직이 더 많아지는 경우가 다반사였다. 
이를 좀 더 쉽게 활용하기 위해서 스프링이 개발되었다.

실제로 프레임워크의 이름이 spring인 이유는 EJB를 사용하던 시절(겨울)을 지나서 새로운 시대(봄)이 오기를 바라는 마음으로 명명

spring

  1. EJB 컨테이너 대체.
  2. 보다 간결하고 사용성이 좋다(단순했다).
  3. 현재 사실상 표준 기술

스프링은 자바 언어 기반의 프레임워크이다. 자바 언어의 가장 큰 특징 객체 지향 언어 이다 객체지향언어의 특징을 가장 잘 살려낼수있는 프레임워크이다

좋은 객체지향의 5가지 원칙 (SOLID)

  • SRP: 단일 책임 원칙(single responsibility principle)
    • 한 클래스는 하나의 책임만 가져야한다.중요한것은 변경이다. 변경 시 다른 서비스에 파급효과가 적다면 해당 원칙을 잘 지키고 있는 것이다.
    • 하나의 작업만 진행해야한다?
  • OCP: 개방-폐쇄 원칙 (Open/closed principle)
    • 다형성 원칙
    • 확장은 용이하나 변경은 안됨
      1. 허나 다형성의 특징인 오버라이딩을 사용하더라도, 해당 서비스를 사용하려면 컨트롤러 단에서 코드를 변경해야하는 상황이 생김
      2. 이것을 좀더 쉽게 간단하게 사용하게 해주는 것이 스프링
  • LSP: 리스코프 치환 원칙 (Liskov substitution principle)
    • 인터페이스의 규약을 지켰는가
  • ISP: 인터페이스 분리 원칙 (Interface segregation principle)
    • 하나의 범용성 인터페이스보단 여러개의 인터페이스로 나누는것이 좋다
  • DIP: 의존관계 역전 원칙 (Dependency inversion principle)
    • 추상화에 의존되어야한다.(역할에 의존되어야한다)
      1. 인터페이스를 사용하고, 해당 인터페이스를 구현한 class 가 있을것이다
      2. 사용자단에서 바라보는것은 역할을 바라봐야한다.우리가 소형차를 타던, 중형차를 타던 그 구현체가 자동차라면 우리는 해당 차를 사용할 수 있다.
      3. - 자동차 면허는 자동차라는 역할을 바라보고 있다 - 자동차 면허로 비행기를 운전할 순 없다
      4. Ex) 자동차 면허를 가지고 있음으로 모든 자동차를 운전할 수 있게 한다 - 역할 : 자동차
반응형

'Spring' 카테고리의 다른 글

Spring database config bean 설정 예제 by JPA  (1) 2024.04.04
Spring AOP, AOP 용어 정리  (0) 2022.07.05
[Spring Boot] @SpringBootApplication  (0) 2022.06.30
@WebServlet, @Controller 의 차이  (1) 2022.06.01
스프링 컨테이너란?  (0) 2022.04.26