기본 콘텐츠로 건너뛰기

3.01 Framework(1)

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)