디지털 양피지/WebJava2016. 5. 19. 10:16

Framework 이란?

1) 프레임워크와 아키텍쳐

프레임워크의 사전적 의미는 뼈대 혹은 골조로서 어플리케이션 개발할때 아키텍쳐에 해당하는 골격 코드를 제공한다. 따라서 개발자는 프레임워크에서 제공하는 아키텍쳐를 사용하여 일관된 개발을 할 수 있다. 그래서 프레임워크를 반제품이라고도 한다. Solution과는 달리 아키텍쳐에 해당하는 절반의 코드만 제공하기 때문이다. 프레임워크를 사용하면 안정성과 생산성 향상, 관리 용이 등의 이점이 있다.


2)프레임워크의 구조

어플리케이션을 개발할때 변하지 않고 반복적으로 재사용되는 부분을 프레임워크 코어 또는 콜드 스팟(Cold Spot) 이라 하며, 이는 프레임워크에서 제공하는 라이브러리들을 의미한다. 


3) 프레임워크의 특징

1. 빠른 구현시간

2. 관리 용의성 증가

3. 개발자들의 역량 획일화

4. 검증된 아키텍쳐의 재사용과 일관성 유지



자바기반 프레임워크(Open Source)

: 대부분 Controller를 중심으로 제공한다.


1. Presentation: Struts, Spring MVC

  => 2002년 출시한 Struts 보다 2004년 출시한 Spring 이 많이 쓰임. 

  => Struts는 Version UP이 잘 안됨.


2. Business: Spring(IoC/AOP)

  =>Spring은 컨테이너 성격을 가지는 프레임워크이다. 

  =>EJB로 개발 되던 것이 Spring으로 변경 되고 있음. 

     EJB는 이제 거의 사용되지 않는 기술이다. 구성이 복잡하고 유지보수가 어려운데 메모리도 많이 사용함.




J2EE ArchitectureJ2EE Architecture



3. Persistence: Hibernate, iBatis

  => Hibernate는 SQL도 Generation한다. Modeling 부터 다시 해야하는 프로젝트에 적합.

  => iBatis는 SQL을 그대로 재사용한다. MyBatis로 2010년에 이름이 바뀌었다. (아파치탈퇴 후 Google code로 넘어감)


Spring Framework

로드존슨이 2004년 만든 오픈 소스 프레임워크.

특징

1. Lightweight - jar 파일로 구성되어 있어 필요한것만 사용할 수 있다. POJO(Plain Old Java Object)는 일반적인 Java 클래스로 만든 객체로 스프링은 POJO를 처리한다. 

2. 제어 역량(IoC - Inversion of Control)

3. 관점 지향(AOP - Aspect-Oriented Programming)

4. 컨테이너(Container) - 어플리케이션 운용에 사용되는 객체의 생명주기와 객체들 간의 의존 관계를 관리한다는 점에서 Spring도 일종의 컨테이너라고 할 수 있다. 스피링 컨테이너는 POJO를 관리한다. 이러한 container를 IoC Container라고 부른다.

5. Framework



IoC(Inversion of Control) 컨테이너

IoC는 Spring의 Core 부분이다.


IoC를 이용하지 않은 ClassA는 Class B와 C에 따라 소스를 변경해야 한다. 하지만, IOC를 이용할 경우 소스를 변경하지 않고 ClassA에서 B와 C를 Factory에서 결정해서 준다. 따라서 Client 또는 Class A의 변경은 필요 없다.

하지만 Factory 에서 변경을 필요로 한다. 이러한 Factory 도 변경할 필요 없게 한것이 Spring Bean Factory 다.





Spring IoC Bean 이용하기


BeanFactory는 Interface이고 XmlBeanFactory는 이것을 Implement한것이다. ClassPathResource는 해당 프로젝트의 폴더에서 파일을 검색한다.


Spring Container 종류

1. BeanFactory: 잘 사용하지 않음. Lazy Loading

  =>XmlBeanFactory 클래스만 제공

2. ApplicationContext: BeanFactory를 상속 받아 주로 사용. Pre-Loading

  => XmlWebApplicationContext, FileSystemXmlApplicationContext, ClassPathXmlApplicationContext 제공


Spring Tool Suites(STS) 설치하기: 스프링 개발을 위한 툴

Spring Library를 다운하기 위해서도 STS를 사용한다. Maven을 이용해서 다운로드 한다.


STS를 설치하면 config파일 생성 뿐만 아니라 문번, 자동완성등 편의 기능을 제공한다.

아래와 같이 마법사를 이용하여 configuration file을 생성할 수 있다.

자동 완성 기능도 지원한다.




Posted by 빨간 양말