본문 바로가기

류필의 공부방/컴퓨팅 기술 일반

프레임워크가 뭐야 : [프레임워크의 개념정리]

IT 용어는 공부를 해도 영어 그대로 이해하기 어려운 부분이 참 많은 것 같습니다. 특히 프레임워크에 대한 이해가 참 어렵습니다. 그래서 여기저기 찾아보고 나름 공유를 해볼까 합니다.

위키피디아에 따르면 "소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드(buzzword)로서, 특히 소프트웨어 환경에서 사용할 수 있게 만들어 준다."고 정의하고 있습니다.[1] 


골조는 건물의 뼈대로 볼 수 있다. 따라서 골조를 같은 것을 쓰는 건물이 있다면, 비슷한 모양이지만 쓰임이 달라질 수 있습니다. 사진은 성당을 짓는 모습인데, 2층짜리 공장으로 사용할 수 도 있을 것 같습니다. 그래도 어렵습니다. <디자인 패턴>을 저술한 GoF(Gang of Four)의 한명인 랄프존슨(Ralph Johnson) 교수는 "소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"[2]으로 정의하기도 합니다.


조금 더 정리된 하면 프레임워크는 다른 소프트웨어 프로젝트가 개발될 수 있는 뼈대 구조, 지원 프로그램, 라이브러리, 언어, 다른 소프트웨어 구성 요소들을 엮어주는 소프트웨어 등을 포함플랫폼도 프레임워크의 일종이라고 볼 수 있음, 프로그램 개발을 위한 부분이며, 완전한 소프트웨어 실행 환경이 되지 않음플랫폼은 프로그램 실행환경을 포함하는 개념으로 보고 있습니다.[3]


이처럼 프레임워크에 대한 의미는 어느정도 알겠으나, 추상적이기 그지 없습니다. 굳이 정리를 하자면 "한 분야의 응용프로그램 개발이 가능하도록 개발된 '기초프로그램' 이며, 프레임워크 자체가 하나의 어플리케이션(상용프로그램)의 역할을 하지 못하는 '반제품'"이라고 할 수 있다.




참고문헌

[1] 위키피디아 : 소프트웨어 프레임워크

[2] Gun's Knowledge Base : 프레임워크란?

[3] SlideShare : Spring Core