Java2EE Framework/프레임워크 개념

프레임워크(Frame Work)의 개념

본클라쓰 2010. 5. 4. 11:49

 

 프레임워크란 비슷한 종류의 애플리케이션을 개발할 때 뼈대가 되는 구조를 미리 작성해 놓고 그 뼈대를 토대로 각각의 애플리케이션을 개발하는 방법을 제공하는 미들웨어 프로그램을 말한다. 프레임워크 자체는 완벽한 프로그램이 아니다. 프레임워크를 사용하여 개발자가 세부적인 동작을 지정해 주워야 완전한 프로그램이 될 수 있는 것이다.

 

 이런 개념은 객체지향 프로그래밍이 일반화되면서 나타난 개념으로 어떤 프로그램이든 다른 프로그램에서 사용한 코드와 비슷한 코드가 존재할 수 있고, 이런 부분은 다시 개발하지 않고 재사용한다면 많은 시간과 노력을 절약할 수 있을 것이라는 생각에 초점을 맞춘 것이다.

 

 객체 지향 프로그래밍이 일반화되면서 클래스의 상속과 재정의를 통한 재사용성이라는 한 단계 발전된 형태의 재사용이 가능해졌다. 하지만, 객체 지향의 상속과 재정의를 사용한다해서 재사용성이 좋아지는 것이 아니다. 잘못된 클래스 정의는 오히려 프로그램을 복잡하게 만든다. 이런 코드를 닫혀있는 코드라고 부른다. 이에 프로그래머들은 재사용성이 좋은 설계 방법에 대해 생각하기 시작했고 이것이 디자인 패턴이다.

 

 디자인 패턴은 객체 설계 노하우로 하나의 상황에 맞춰 객체를 설계하는 방법이다. 클래스들이 어떻게 정의하고 사용하면 객체간의 응집도가 낮아져서 재사용성이 좋아질까 고민하면서 나타난 개념이다. 그러나 디자인 패턴은 하나의 상황에 초점을 맞춰 객체를 설계하는 방법이기 때문에 패턴의 정확한 이해 없이 상황에 맞지 않게 남용하면 오히려 독이 다. 또한, 애플리케이션을 개발하다보면 많은 상황이 발생하고, 수 많은 디자인 패턴을 공부해도 어떤 상황에 어떤 패턴을 적용하는 것이 바람직한지 판단하고 이를 구현하는 것은 쉬운일이 아니다.

 

 객체 설계의 재사용성이 디자인 패턴이라면 프로그램이에서도 재사용성 향상을 위한 방법이 모색되었는데 그것이 프레임워크이다. 따라서 프레임워크 자체는 완전한 애플리케이션 소프트웨어가 아니고, 어떤 문제 영역을 해결하기 위해 잘 설계된 재사용이 가능한 모듈을 뜻한다. 따라서 완전한 애플리케이션을 완성하는 작업, 즉 뼈대에 살을 붙이는 작업이 요구된다. 즉, 프레임워크란 애플리케이션이 해결해야 할 문제를 미리 적용하기 쉽게 구성한 모듈로 개발자들이 애플리케이션의 문제를 쉽게 해결할 수 있도록 도와주는 것이다.

 

 

■ 프레임워크의 구분

 

프레임워크는 애플리케이션에서의 처리영역에 따라 구분을 지을 수 있고, 기능, 지원, 통합 프레임워크로 구분한다.

 

1. 기능프레임워크

 전체 애플리케이션 중에서 특정 기능 부분의 구현에 사용되는 프레임워크로, 가장 보편적으로 많이 사용되는 프레임워크이다. 애플리케이션이 동작하기 위해 필요한 기능들을 전담하고 프레임워크로 대표적인 것이 Log4j나 OR-매핑 프레임워크 등이 있다.

 

2. 지원 프레임워크

 애플리케이션 개발에 도움주는 지원 프레임워크를 말한다. 지원 프레임워크는 애플리케이션에 포함되지 않고 개발시에만 사용되며 대표적인 지원 프레임워크고 Ant와 JUnit 등이 있다. 

 

3. 통합 프레임워크

 통합 프레임워크는 여러 기능의 프레임워크를 한 곳에 통합한 프레임워크를 말한다. 특정 아키텍처 모델에 기반을 둔 애플리케이션 전체 영역을 다루며, 소프트웨어 전반에 걸쳐 개발자들이 구현해야 할 많은 부분을 대신해 준다. 

 

  

■ 프레임워크 선정시 주의할 점

  1. 재사용성이 좋을 것
  2. 확장성이 좋을 것
  3. 사용하기 쉬울 것
  4. 플랫폼으로부터의 독립성
  5. 꾸준한 지원