Framework(1)
- 특정 개념, 문제영역을 해결한 재사용성이 있고 확장성이 있는 라이브러리
- struts, webwork, spring...
- 돈과 시간의 절약이 가능하고 디버그 양이 감소
0. 개요
1. 제어 역행
2. Bean Factory / Application Context
3. 왜 Framework를 적용해야하지?
0. 개요
<new 연산자의 폐해 & interface 기반 개발 & 의존성 주입 개요>
1. IoC: Inversion Of Control(제어 역전, 제어 역행)
- 제어 역행: 자신에게 제어권이 없음 → 책임이 나에게 없음1) 의존성 주입: 사용할 instnace를 주입 - 외부 설정 파일을 통해 정의(xml, properties)
- setter injection: 클래스 간 의존관계 연결에 setter method를 이용
- constructor injection: 클래스 간 의존관계 연결에 생성자를 이용
2) 의존성 찾기(Dependency LookUp)
3) IoC Container: 의존성 주입을 관리, bean 생성과 소멸, API 제공 등의 역할 수행
meta-data에 서술적, 선언적으로 기술하고 필요한 instance를 LookUp
※ POJO: Plain Old Java Object
- 특정 자바 모델, 기능, 프레임 워크 등을 따르지 않는 자바 객체
- BEAN 규약을 준수
예) spring framework는 POJO 방식의 프레임 워크
<xml에서 생성자를 이용한 의존성 주입 예시>
<생성자를 이용한, setter method를 이용한 의존성 주입>
2. Bean Factory / Application Context
1) Bean Factory: 기본적인 instance의 생성, 의존성 주입 컨테이너 역할2) Application Context: Bean Factory를 상속하여 여러가지 추가 기능 등
※ IoC Container = bean factory = application context
3. 개발할 때 Framework를 적용하는 이유
1) 개요
<AS-IS 시스템 과 To be 시스템>
- user가 정의한 클래스가 Framework API를 이용하여 손쉽게 개발이 가능
- meta data(xml, properties)를 이용하여 소스코드를 건드리지 않고 수정 및 디버깅이 용이해짐
2) 이유1: 소스코드를 일일이 수정할 필요가 없음
<텍스트 파일 및 io를 통한 데이터 관리보다 properties 파일로 메타 데이터 관리>
3) 이유2: 소스코드를 수정하지 않고 다른 BEAN을 사용할 수 있음
<bean factory와 xml 파일을 통해 소스코드를 건드리지 않고 다른 BEAN 사용 가능>
4) 이유3: 주사위 게임을 통해 알아보는 느슨한 결합(loose coupling)