오픈프레임웍스

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
오픈프레임웍스
OfxOpenCV.png
OpenCV 추가 기능을 이용한 오픈프레임웍스
개발자 Zachary Lieberman, Theo Watson, Arturo Castro
최근 버전 pre-release 0.8.2 / 2014년 07월 01일, 112일 경과
운영 체제 크로스 플랫폼
종류 프로그래밍 언어
라이선스 MIT
웹사이트 http://www.openframeworks.cc/

오픈프레임웍스(openFrameworks)는 C++를 기반으로 한 오픈 소스 라이브러리로서 "창의적인 코딩"을 위해 디자인되었다. 오픈프레임웍스는 C++로 작성 되었으며, 윈도, Mac OS X, 리눅스에서 작동하는 크로스 플랫폼 소프트웨어 프레임워크이다. 오픈프레임웍스는 Zachary Lieberman, Theo Watson, Arturo Castro, 그리고 오픈프레임웍스 커뮤니티에 의해 공동 개발되었다.

역사[편집]

오픈프레임웍스(OpenFrameworks) v0.01 은 Zachary Lieberman 에 의해 2005년 8월 3일에 릴리즈 되었다. 2006년 2월에 버전 v0.03은 뉴욕에서 [[Parsons School of Design]의 학생들에 의해서 사용 되었다. 저자에 의하면 다음음에 의하여 오픈프레임웍스는 개발되었다.

원문 :

(for) folks using computers for creative, artistic expression, and who would like low level access to the data inside of media in order manipulate, analyze or explore. That audience we felt was significantly underserved by the current crop of C++ libraries.
번역 :
컴퓨터를 사용해 창조적이고 예술적 표현, 그리고 미디어 데이터를 조작, 분석, 탐구 하기 위해 저수준 액세스를 좋아하는 사람들을 위해서 만들어졌다. 우리가 느끼기에 현재의 C++라이브러리는 이러한 일을 하기에는 적합하지가 않다.

특징[편집]

오픈프레임웍스는 기존의 다양한 라이브러리를 통합하여 손쉽게 사용가능하도록 설계되어있다. 그래픽에는 오픈지엘이, 오디오 작동에는 rtAudio를, 글꼴에는 프리타입이, 이미지 작업에는 freeImage가, 그리고 비디오 재생에는 퀵타임이 사용되었다.

설치[편집]

오픈프레임웍스는 별도의 IDE를 제공하지 않으며, 별도의 설치과정이 존재하지 않고, 소스 코드 형태로 제공이 된다. 오픈프레임웍스를 시작하는 과정은 다음과 같다.

  1. C++를 위한 컴파일러를 선택한다.
  2. 자신의 운영 체제에 적합한 컴파일러/IDE를 다운로드하여 설치한다.
  3. 최신 버전의 오픈프레임웍스 릴리즈를 다운받는다.

운영 체제별 IDE 설치[편집]

  • 윈도:
윈도에서는 마이크로소프트 비주얼 스튜디오나, 오픈 소스로 제공되는 Code::Blocks를 설치한다.
  • 맥 OSX:
맥 OSX 사용자는 Xcode를 설치하도록 한다.
  • 리눅스:
리눅스 사용자는 Code::Blocks를 설치하도록 한다.

릴리즈 다운로드[편집]

사용자들은 홈페이지 상의 다운로드 메뉴에서 최신 버전의 릴리즈를 내려받을 수 있다. 모든 버전은 운영 체제IDE에 따라 별도로 제공된다.

v0.05 버전 출시 이후로는 일반 버전과 FAT 버전으로 구분해서 제공된다. FAT 버전에서는 다양한 추가 기능(addons)이 포함되어 있다. 추가기능에는 openCV, 벡터 출력 및 연산, OSC, 네트워크 통신 등을 포함하고 있다.

오픈프레임웍스 구조[편집]

오픈프레임웍스에는 다양한 소트프웨어 라이브러리가 통합되어 제공된다. 오픈프레임웍스의 다양한 함수클래스들은 이러한 내부 라이브러리 기능들을 쉽고 편리하게 사용할 수 있도록 제공한다.

폴더 구조[편집]

오픈프레임웍스를 내려받으면, libraries, addOns, example 같은 일련의 폴더들을 발견할 수 있다. 각 폴더의 내용은 다음과 같다.

  • addons - FAT 버전을 내려받으면, 다양한 추가 기능이 제공되는데, 그러한 추가 기능이 담겨 있는 폴더이다.
  • apps - 직접 작성한 응용 프로그램이 저장되는 장소이며, 다양한 예제들이 포함되어 있다.

오픈프레임웍스를 사용할 때 계층 구조를 유지하는 것이 매우 중요하다. 내려받은 패키지응용 소프트웨어가 내부 폴더들과 지역적으로 링크될 수 있도록 구성되어 있다. 만약 폴더들을 옮기거나, 변경하게 되면 컴파일이 되지 않을 수 있다.

새로운 프로젝트를 생성할 때는 apps 폴더 안의 examples 폴더의 예제 응용 프로그램들과 같은 폴더 구조를 띄어야 한다.

apps > (예제와 같은)그룹 폴더 > 프로젝트 이름 > 프로젝트 파일

코드 구조[편집]

오픈프레임웍스의 코드 구조는 다음과 같다.

  • main.cpp : mail.cpp 파일은 c++ 컴파일러에게 어떠한 리소스를 프로그램 내에서 사용할 것인지를 알려주고, 프로그램을 실행시키는 역할을 한다.
  • testApp : 실제 코딩은 testApp.h와 testApp.cpp 파일 내에서 이루어지게 된다. 사용자는 기본적으로 setup(), update(), draw() 함수를 사용할 수 있다. setup은 응용 프로그램이 실행되는 순간에 한번만 실행되며, 다양한 변수와 업데이트가 필요하지 않은 설정들을 선언하는 부분이다. update 함수는 매 프레임별로 지속적으로 작동한다. 하지만 내부에 드로잉 함수를 호출 할 수 없고, 실제 매 프레임 드로잉되는 함수들은 draw함수에 포함시켜야 한다.

헬로 월드[편집]

가장 기본적인 응용 프로그램 작성을 위해 examples 폴더 내의 emptyProject 프로젝트를 실행한다. 가장 기본적인 헬로월드 프로그래밍은 testApp.cpp 파일 내의 setup()함수를 다음과 작성하면 된다.

void testApp::setup(){
	cout << "Hello World" << endl ;
}

하지만 다음의 코드가 오픈프레임웍스의 언어를 잘 표현해 주는 좋은 예라고 할 수 있다.

//testApp.h 
#ifndef _TEST_APP
#define _TEST_APP
 
 
#include "ofMain.h"
 
class testApp : public ofBaseApp{
 
	public:
 
		void setup();
		void update();
		void draw();
 
		ofTrueTypeFont font;
 
};
 
//testApp.cpp
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){	 
 
	font.loadFont("myFont.ttf", 32);
}
//--------------------------------------------------------------
void testApp::update(){
}
 
//--------------------------------------------------------------
void testApp::draw(){
	ofSetColor(0x00FF00);
	font.drawString("Hello World", 100,100);
}

추가 기능(addons)[편집]

오픈프레임웍스에는 기본 라이브러리 이외에도 다양한 추가 기능이 제공된다. FAT 버전을 다운받게 되면 addons 폴더 안에 추가 기능이 기본적으로 설치가 된다. 기본적으로 설치되는 추가 기능은 다음과 같다. [1]

주석[편집]

  1. openFrameworks

라이선스 정책[편집]

오픈프레임웤스는 MIT 허가서아래에 관리된다. 프레임워크에 사용된 라이브러리는 각각의 자신들의 라이선스를 가지고 있다.

관련 프로젝트[편집]

참고[편집]

  • 프로세싱 - 자바 기반의 프로그램으로, 전자예술이나 비주얼 디자인 커뮤니티를 위하여 제작되었다.
  • 신더 - C++ 기반의 프레임워크로, 보다 진보된 시각화가 가능하다.

바깥 고리[편집]