[Spring] 스프링 프레임워크 ( Spring Framework ) 의 개념과 특징
[Spring] 스프링 프레임워크 ( Spring Framework ) 의 개념과 특징
Framework 란 ?
공통되는 / 반복되는 작업들을 미리 만들어 둔 프로그램
프로그램의 골격이 되는 기본 코드
소프트웨어 개발을 간소화하기 위해 개발됨
개발자는 프레임워크를 기반으로 소스코드를 작성하여 소프트웨어를 완성시키면 된다.
Spring Framework 란 ?
POJO 기반의 경량 컨테이너
POJO ( Plain Old Java Object ) 란 ?
평범한 구식 자바 객체
별도로 종속되지 않는 자바 객체를 통칭
EJB의 경우에는 implements, extends 를 사용하는 코드들이 많다. 그럴 경우에 빈 하나를 만들기위해 다양한 부모클래스를 알아야했고, 클래스 간의 의존도가 높아질 수 밖에 없다. POJO는 이러한 복잡한 것을 버리고, 간단한 자바 객체만을 가지고 일을 처리하자는 철학을 가지고 있다.
특정 규약에 종속되지 않는다. (Java 언어와 꼭 필요한 API 외에 종속되지 않는다.)
특정 환경에 종속되지 않는다.
객체지향 원리에 충실해야 한다.
POJO를 사용하는 이유
코드의 간결함 (비즈니스 로직과 특정 환경/low 레벨 종속적인 코드를 분리하므로 단순하다.)
자동화 테스트에 유리 (환경 종속적인 코드는 자동화 테스트가 어렵지만, POJO는 테스트가 매우 유연하다.)
객체지향적 설계의 자유로운 사용
참고 URL
https://limmmee.tistory.com/8
https://jobc.tistory.com/121
경량컨테이너
프로그램 자체가 가볍지는 않은데 왜 ? -> EJB에 비해 가볍다는 것
Spring Framework의 특징
OCP ( Open-Closed Principle ) : 개방 폐쇄 원칙
자신의 확장에는 열려 있어야 하며, 주변 변화에 있어서는 닫혀있어야 한다.
A가 B에 의존한다고 할 때,
B는 언제든 다른 기능으로 변화를 줄 수 있도록 확장성 좋게 개방해야 하며, B를 갖다쓰는 A는 변화가 없도록 폐쇄해야한다.
DI ( Dependency Injection ) : 의존성 주입
IoC ( Inversion of Control ) : 제어의 역전
AOP ( Asperct Oriented Programming )
from http://printf100.tistory.com/35 by ccl(A) rewrite - 2020-03-16 21:54:32
댓글
댓글 쓰기