IT 용어는 공부를 해도 영어 그대로 이해하기 어려운 부분이 참 많은 것 같습니다. 특히 프레임워크에 대한 이해가 참 어렵습니다. 그래서 여기저기 찾아보고 나름 공유를 해볼까 합니다.
위키피디아에 따르면 "소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드(buzzword)로서, 특히 소프트웨어 환경에서 사용할 수 있게 만들어 준다."고 정의하고 있습니다.[1]
골조는 건물의 뼈대로 볼 수 있다. 따라서 골조를 같은 것을 쓰는 건물이 있다면, 비슷한 모양이지만 쓰임이 달라질 수 있습니다. 사진은 성당을 짓는 모습인데, 2층짜리 공장으로 사용할 수 도 있을 것 같습니다. 그래도 어렵습니다. <디자인 패턴>을 저술한 GoF(Gang of Four)의 한명인 랄프존슨(Ralph Johnson) 교수는 "소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"[2]으로 정의하기도 합니다.
조금 더 정리된 하면 프레임워크는 다른 소프트웨어 프로젝트가 개발될 수 있는 뼈대 구조, 지원 프로그램, 라이브러리, 언어, 다른 소프트웨어 구성 요소들을 엮어주는 소프트웨어 등을 포함, 플랫폼도 프레임워크의 일종이라고 볼 수 있음, 프로그램 개발을 위한 부분이며, 완전한 소프트웨어 실행 환경이 되지 않음, 플랫폼은 프로그램 실행환경을 포함하는 개념으로 보고 있습니다.[3]
이처럼 프레임워크에 대한 의미는 어느정도 알겠으나, 추상적이기 그지 없습니다. 굳이 정리를 하자면 "한 분야의 응용프로그램 개발이 가능하도록 개발된 '기초프로그램' 이며, 프레임워크 자체가 하나의 어플리케이션(상용프로그램)의 역할을 하지 못하는 '반제품'"이라고 할 수 있다.
참고문헌
'류필의 공부방 > 컴퓨팅 기술 일반' 카테고리의 다른 글
컴퓨터야 알아서 처리좀 부탁해 : 오토마타(오토매틱, 자동화) 이론 (0) | 2018.03.12 |
---|---|
컴퓨터에게 생각을 만들어 주기 : 알고리즘의 유래와 정의 (0) | 2018.02.07 |
블록체인(Block chain)이 도대체 뭘까? (0) | 2018.01.24 |