2021.01.05 화요일
- IOC → MVC → ORM → AOP
- websocket, security, batch
Framework
소프트웨어의 특정문제를 해결하기 위해
상호협력하는 클래스와 인터페이스의 집합
1. 특정개념들의 추상화를 제공하는 클래스나 컴포넌트들로 구성
2. 상기의 추상적 개념들이 문제를 해결하기 위해 협업하는 방법을 정의
3. 재사용 가능한 컴포넌트들의 집합
4. 보다 수준 높은 패턴들로 조직화된 구조
Library
소프트웨어에서 호출할 수 있는 함수와 루틴들로 구성
기존 우리가 한 레이어드 아키텍쳐 문제점..
- ServiceImpl 의존성때문에 DaoImpl을 new로 생성하며 결합력이 너무 큼..
- HCLC (High Chesion Loose Coupling)
- SOLID (응집력 높이기 위해)
- BoardServiceImpl에서 sqlSession(persistence layer의 프레임워크 mybatis의 api) 사용 → persistence layer framework 변경시 businesslogiclayer까지 수정해야함
위의 문제점 해결 방안 : Dependency Injection과 Spring의 DIContainer
Spring Framework
- EnterpriseJavaBeans(EJB) heavy weight모델 지원형 프레임워크
- POJO 기반 개발을 통해 의존적인 코드 없이
Bean들에 대한 생명주기를 관리 (DI컨테이너의 핵심)
- transaction 관리를 위한 방법 제공 (AOP와 연관)
- Lightweight Container 로 시작 부하가 적다
- 서블릿컨테이너 : 서블릿 라이프 사이클 관리
- 스프링은 객체를 관리 : 그 객체를 Bean이라고 부른다
- JavaEE 기반의 어플리케이션 개발을 쉽게 해주는 오픈 소스 어플리케이션 프레임워크
- 전체 어플리케이션을 체계적으로 엮어낼(wire up) 수 있는 프레임워크
about Spring Framework & reference doc 매뉴얼북
요 버전에 맞춰서 해볼거임
이고브프레임워크 참고 사이트 about Spring
오늘 수업 메인 IoC Container
표준프레임워크 실행환경 3.9 공통기반 핵심
core(핵심)
- IOC (Inversion of Control)
DI (Dependency Injection 의존관계)
- Resource
웹리소스, 파일리소스, 클래스패스리소스
- Validation
- EL (Expression Language)
- Aspect Oriented Programming
- AOP
EJB (EnterpriseJavaBeans)
- 대규모 어플리케이션 프로그램 개발 시 모든 규칙 및 스펙 집합
- JavaBean규약
- heavy weight
Core Container
Core and Beans
- Spring 프레임워크의 근간이 되는 IoC/DI 기능을 지원하는 영역을 담당하고 있다.
- BeanFactory를 기반으로 Bean클래스들을 제어할 수 있는 기능을 지원한다
Context
- Core and Beans를 견고히(solid)한 모듈
- 객체에 접근하는 방법을 제공
- Beans 모듈에 더하여 국제화, 이벤트 전파, 리소스 로딩, 투명한 context 생성
Expression Language(SpEL)
- 객체 탐색을 실행 시에 구하거나 조작할 수 있도록 강력한 표현언어를 제공
AOP and Instrumentation
AOP (Aspect-oriented Programming)
- AOP Alliance 기반의 Aspect Oriented Programming을 지원
- 업무 로직에서 부가적인 기능들을 method-interceptors, pointcuts을 이용하여 분리(module)하여 작성
Instrumentation
- 어플리케이션 서버에서 사용되도록 클래스 구현의 지원이나 클래스 로더의 구현을 제공
Data Access/Integration
JDBC
- JDBC기반하의 DAO개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 추상화된 레이어를 제공
ORM
- Object Relation Mapping 프레임워크인 Hibernate, iBatis, JDO, JPA와의 통합을 지원
OXM
- Object/XML Mapping은 Object와 XML간의 변환을 위한 추상 계층
JMS
- Java Message Service 메시징 처리를 위한 모듈을 제공
Transaction
- 직접적인 트랜젝션 관리나 선언적인 트랜젝션 관리에 있어 일관된 추상화를 제공
Web
- 기본적인 웹 기반을 위한 기능을 제공
- 다중 FileUpload처리, 리스너와 웹 기반 application context를 위한 IoC 컨테이너 초기화
Web-Servlet
Web-WebSocket
Web-Portlet
- 박스 하나를 jar로 생각!
- EL은 Core가 있어야함
- Beans도 Core가 있어야 함
Beans를 넣으면 asm, core까지 따라와
Context를 넣으면 전부 옴!
- 스프링이 관리하는 객체(bean) 관리
그냥 피니쉬
1.컨테이너사용방법
2.컨테이너빈관리 - 어떤특성에 따라서?
3. 컨테이너에 일일히 입력하면서 하는 과정인데
어떻게 하면 자동으로 등록하고 받을건지?
파일체킹 런타임시 하는게 제너릭타입 List< String >
컴파일시 하는게 List
28페이지까지
- 알바생관리 마무리
- 임플로이스 대칭형 쿼리부분 머지 연습
- 스프링 복습