본문 바로가기

Define Java/FrameWorks

프레임 워크란?

프레임 워크란?


사전적 의미로는 "어떠한 것을 이루는 뼈대, 기본 구조"를 뜻한다.
소프트웨어에서의 프레임워크란 "소프트웨어의 특정 문제" 또는 "소프트웨어 제작을 편리하게 할수 있도록 "미리 뼈대를 이루는 클래스와 인터페이스를 제작하여 이것들을 모아둔 것" 이라고 할 수있다.

지금 프레임워크에 대해서 글을 쓰고 있는 필자도 프레임워크를 처음 접할 때 도대채 이것을 왜 사용할까? 이것을 사용하면 더 편하게 작업할 수 있을까? 프레임워크가 과연 무엇이길레...
이런생각을 자주 하곤 했다.
필자의 생각으로는 프레임워크를 알기 위해서는 프레임워크를 사용 해 보는것이 가장 빠른 길인거 같다.
몇년동안 프레임워크 프레임워크 하는 소리를 듣고 인터넷을 찾아보고 하였지만 역시나 한번 사용해 보니 이런게 프레임 워크다는 생각이 들게 되었다.

아무튼 프레임 워크란 하나 하나의 상황에 초점을 맞추고 있는 디자인 패턴들을 모아 놓고 적용하기 쉽도록 구성하여, 개발자들이 쉽게 문제를 해결할 수 있도록 해주는 것이며 이것을 확장하여 클라이언트의 요구 사항을 충족시키는 Application을 만들 수 있는 뼈대를 제공해주 것이다.
즉, 개발자는 완성된 뼈대에 살을 붙이는 작업으로 Application을 완성시키게 된다.

프레임 워크에는 처리 영역에 따라 기능, 지워, 통합 프레임 워크로 구분이 된다.

1. 기능 프레임워크
 전체 Application의 특정 기능 부분의 구현에 사용되는 프레임 워크로써 Application 동작에 필요한 여러 영역들의 문제를 전담하는 프레임 워크 들이다.
 예를 들어 DB에 접근하여 처리만 담당하는 프레임 워크라든지 로깅을 담당하는 프레임워크 등 특정한 영역에 사용되는 프레임워크이다.
2. 지원 프레임워크
 Application 개발 도움을 주는 프레임워크를 말하며 Applicaion안에 포함되지 않고 밖에 포함되는 프레임워크이다.
 Applicaion 개발 보다는 빌드를 위한 프레임워크가 지원프레임워크에 속한다.
3. 통합 프레임워크
 여러 기능의 프레임워크를 한 곳에 모아 통합한 프레임워크를 말한다.
 소프트웨어 전반에 걸쳐 개발자들이 ㄷ구현해야 할 많은 부분을 대신 해주며 대형 벤더들이 개발 환경과 함께 제공해 주는 경우가 많다.

이상 프레임워크에 대해서 정리해 보았다. 필자가 생각하고 있는 프레임워크가 다른 전문가들이 생각하고 있는 프레임워크가 맞는지는 필자도 잘 모른다.
아무리 생각해도 프레임 워크란 참....애매한 존재인거 같다.