728x90
Framework
아키텍처에 해당하는 골격 코드.
애플리케이션의 구조를 결정하는 아키텍처에 해당하는 코드를 프레임워크가 제공한다.
그렇기에 개발자는 비즈니스 로직에 집중 할 수 있다.
Spring(MVC) - MVC 아키텍처를 제공하는 UI Layer 프레임워크
Spring(IoC, AOP) - IoC와 AOP모듈을 미용하여 Spring 컨테이너에서 동작하는 엔터프라이즈 비즈니스 컴포넌트를 개발 할 수 있다.
Hibernate, JPA - ORM Framework. SQL 명령어를 프레임워크가 자체적으로 생성하여 DB연동을 처리. JPA는 모든 ORM의 공통 인터페이스를 제공하는 자바 표준 API.
탄생배경
- EJB로 구현하는것은 매우 복잡하고 비싸며 많은 시간과 노력이 필요.
- 스프링 프레임워크는 POJO를 사용하면서 EJB에서만 가능했던 많은 일을 가능하도록 지원.
특징
- IoC와 AOP를 지원하는 경량 컨테이너 프레임워크
- POJO형태의 객체를 관리하기 때문에 가볍다.
- IoC, Inversion of Control
- 개발을 할 때는 항상 낮은 결합도와 높은 응집도를 항상 신경써야 한다.
- IoC는 결합도와 관련이 있다.
- 객체 생성을 개발자가 직접 처리하는 것이 아니라 컨테이너가 대신 처리해준다.
- 소스코드에 의존관계가 명시되지 않으므로 결합도가 떨어진다.
- AOP, Aspect Oriented Programming
- OOP를 더욱 OOP답게 사용 할 수 있도록 도와준다.
- 응집도와 관련이 있다.
- 핵심 비지니스 로직과 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리하여 응집도를 높여준다.
- 컨테이너
- 특정 객체의 생성과 관리를 담당
- 객체 운용에 필요한 다양한 기능을 제공
- 서버 안에 포함되어 배포 및 구동
IoC 컨테이너
- 설정 파일을 로딩하여 구동
- 클라이언트로부터 요청 수신
- 해당되는 클래스를 찾아 객체를 생성하고 해당 메소드 호출
- 실행 결과를 클라이언트에게 전송
결합도
- 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 나타낸다.
- 이를 낮추기 위해...
- 다형성 이용하기(Polymorphism)
- 디자인 패턴 이용하기
- Factory패턴이 적용된 BeanFactory
728x90
'Spring' 카테고리의 다른 글
Spring Framework 2 (0) | 2019.12.04 |
---|---|
Spring Framework 1 (0) | 2019.12.04 |
1 (0) | 2019.08.25 |
SpringFramework 3 (0) | 2019.06.13 |
Spring Framework 2 (0) | 2019.06.13 |