Processing

 

"처리 중"이라는 뜻의 영어 단어. 본 항목에서는 프로그래밍 언어 'Processing'을 다루고 있다.
1. 개요
2. 특징
3. 버전업
3.1. 프로세싱 2
3.2. 프로세싱 3
4. 안드로이드 지원에 대해
5. 안드로이드 IDE
6. 커리큘럼이 개설된 교육기관
6.1. 대학교
6.2. 대학교 이외의 교육기관
7. 관련 문서


1. 개요


미디어아트 및 교육용 언어 지향의 오픈소스 프로그래밍 언어. 라이센스는 GPL, 라이브러리 라이센스는 LGPL을 따르고 있다.
MIT 미디어 연구소 소속의 Casey Reas와 Ben Fry가 개발하여 2001년 처음 공개하였다. 알파, 베타 과정을 꽤 길게 거쳤으나, 이미 그 단계에서 미디어 아트 지향의 여러 교육기관에서 널리 사용되고 있었으며 첫 정식 버전인 1.0 버전은 2008년 11월에 공개되었다. 초창기에는 'Proce55ing'이라는 특이한 철자를 썼었는데(leet로 S와 5의 형태적 유사성을 이용) 이것은 processing.org의 도메인이 선점되어있어서 proce55ing를 쓸 수밖에 없었기 때문이었다는 듯(...). 현재는 Processing 쪽이 공식 표기이며 도메인도 processing.org를 사용한다(proce55ing.org로 들어가면 processing.org로 리다이렉트된다).
Processing은 기본적으로 Java 베이스의 언어이지만 JavaScript 버전으로 만들어진 P5.js 라이브러리가 있다. 따라서 이 라이브러리를 활용하면 웹브라우저에서도 Processing에서 구현할 수 있는 각종 에니메이션이나 그래픽 효과를 구현할 수 있어 보다 동적인 사이트를 쉽게 구축할 수 있다.

2. 특징


기본적인 아이디어는 과거 두 개발자가 소싯적에 사용했었던 Logo[1]BASIC이 간단한 명령 몇 줄로 그림을 그리거나 사용자와 상호작용 할 수 있는 프로그래밍 환경을 제공했던 데서 착안했다고 하며, Processing과 유사한 목적으로 만들어진 John Maeda[2]의 'Design By Numbers'의 영향도 크게 받았다고 한다. 실제로 인터페이스 등이 DBN과 유사하다.
언어 자체의 문법과 언어 스펙에 대한 기본적인 것은 Java에서 거의 그대로 가져왔지만 문장의 사용이 훨씬 단순화되어있는 것이 특징. 자바의 OOP 개념도 가려서 보이지 않게 해두어 소스를 얼핏 보면 C와 같은 절차형 프로그래밍 언어처럼 보인다.[3] OOP 개념이 오히려 초심자에게는 벽으로 작용한다고 판단한 듯 하다.
특히 간단한 명령(함수) 몇 줄만으로 시각적 표현이 가능한 것이 장점이다. 심지어는 3D 그래픽스나 영상 제어등도 별다른 라이브러리 없이 기본 라이브러리에 든 함수 만으로 그다지 어렵지 않게 구현 가능하다. 덕분에 비교적 프로그래밍에 전문성이 높지 않은 미디어 아티스트의 작업 및 디자이너의 프로토타이핑에 주로 활용되며, 언어 자체의 진입장벽이 비교적 높지 않아 취미 지향의 프로그래밍 초심자가 프로그래밍이라는 개념을 처음 익히기에도 적합한 편이다. 실제로는 Java를 래핑해서 돌아가는 구조이기 때문에 문법이나 언어의 상세 기술은 거의 자바의 그것을 그대로 따르고 있으며 컴파일한 결과물은 자바 가상머신에서 실행된다. 따라서 Java Applet 등으로 내보내서 웹에 작업물을 공개하거나 하는 것도 가능하다.
자바로 만들어진 심플한 자체 IDE를 제공하지만 기본적으로 자바를 래핑한 언어이므로 원한다면 이클립스와 같은 외부 IDE를 이용할 수도 있다. 물론 이 경우에는 자바에서 프로세싱의 pApplet 클래스를 가져다 쓰는 형식이 되므로 정식 프로세싱 코드와 완전히 동일하게 코딩할 수는 없고, 자바 프로그래밍에 대한 기초적인 지식 정도는 있어야한다. 잘 모르겠으면 그냥 전용 IDE를 쓰자.
국내에서는 디자인 및 예술 계통 학과의 커리큘럼 중심으로 보급되어 있지만 그 외의 사용은 매우 저조한 편. 사실 그쪽 전공자라거나 미디어 아트 작업이라도 하지 않는 이상 이걸로 할 만한 게 별로 없다[4]. 이쪽(디자인/예술 계열) 전공이 아닌 이상 '''이런 언어가 있는지 아무도 모른다.''' 심지어는 컴퓨터공학을 전공한 전문가들조차도 프로세싱에 대해 이야기하면 '''그게 뭐냐고 반응'''할 정도. 안습.
디자인/예술 관련 학과의 커리큘럼이라는 측면에서 보자면 컴퓨터에 익숙하지 않은 디자인/예술 계통 전공 학부생들에게 액션 스크립트와 함께 충격과 공포를 안겨주는 존재. [5] 사실 학교 올 때까지(아니 입학한 뒤에도 상당기간) 자기가 학교에서 프로그래밍을 배우는 일이 생길 거라고 생각하는 미대생은 거의 없다. 다만 이것은 학교에 따라 커리큘럼 차이가 커서 이런 게 있는지도 모르고 졸업하는 학교도 많다. 프로그래머의 입장에서 보면 대단히 쉬운 언어에 속하지만 코딩에 문외한인 미대 학부생 입장에서는 프로세싱조차도 배우기 버거워하는 경우가 많아 학교에 따라서는 vvvv 같은 비주얼 언어를 대신 가르치는 곳도 있고 아예 눈높이를 확 낮춰서 1학년 수업에서는 스크래치엔트리 같은 것을 도입하는 곳도 있는 모양이다.
덕분에 국내에는 독학할 만한 자료도 거의 없다시피 했지만 2011년경부터 하나 둘씩 외국 서적들이 번역되는 움직임을 보이고 있으며 사용자가 늘어나면서 국내 저자들이 쓴 책도 여럿 나오고 있다. 책이 나오기 전에는 학교나 문화강좌 커리큘럼 아니면 웹을 통해서 독학하는 것[6] 정도가 거의 유일한 루트였다.
거의 시망 수준의 인지도를 달리는 국내사정과 달리 해외에서는 의외로 좀 인지도가 있는 편이라[7] 다양한 라이브러리를 찾아볼 수 있으며 트러블 슈팅도 오피셜 사이트의 포럼을 중심으로 그럭저럭 활발한 편이다. 프로세싱을 가지고 Wii 리모컨이나 키넥트 같은 것을 다룰 수 있는 라이브러리도 있고보면 미디어 아트 작업에 필요한 라이브러리는 상당히 충실하게 갖추어져 있음을 알 수 있다. 정말 웬만한 라이브러리는 다 있다고 해도 과언이 아니다. 2012년 들어서는 프로그래밍 언어 점유율 집계에서도 50위권 밖이지만 집계에 잡히기 시작하고 있는 것으로 보아 나름대로 사용자가 늘고 있는 추세인 듯.
프로세싱의 사용사례로, 뇌졸중으로 인해 언어기능에 장애가 생긴 어머니를 위해 키넥트와 프로세싱을 이용해 메일을 보낼 수 있는 시스템을 구축한 사례가 있다. 상세한 설명은 키넥트를 통해서 12년 전에 뇌졸중에 걸린 여성이 메일을 보낼 수 있게 되다를 참조. [8]
파생 프로젝트로 Arduino가 있다. 이쪽은 AVR 기반의 임베디드 프로그래밍 환경.

3. 버전업


프로세싱은 새 버전이 나오고 있더라도 구 버전의 파이널 버전[9]은 계속해서 홈페이지에서 공개하고 있다. 왜냐하면 작업에 따라서 최신 버전이 아닌 1.x나 2.x를 사용해야하는 경우가 종종 있기 때문이다. 버전업에 따라 언어의 스펙에 조금씩 개정이 가해져서 구버전의 소스가 최신버전에서 동작하지 않는 경우도 생각보다 흔하고 오래된 라이브러리를 사용하는 경우 높은 확률로 버전을 타서 현행버전의 프로세싱에서는 에러를 뱉거나 정상적으로 돌아가지 않는다. 이런 경우에는 구버전을 사용할 수밖에 없다.
또한 윈도와 리눅스 버전의 경우 64비트와 32비트 버전이 별도로 공개중인데 점차 컴퓨팅 환경이 64비트로 가고 있으므로 현재 새로 프로젝트를 시작하고자 한다면 64비트도 무방하겠으나 좀 오래된 라이브러리를 가져다 쓰려면 32비트 버전을 사용해야하는 경우가 꽤 있다. 특히 윈도 버전 전용 라이브러리가 그러므로[10] 외부 라이브러리가 잘 안돌아가면 32비트/64비트 버전 중 어느 것을 사용해야하는지 잘 알아보자.

3.1. 프로세싱 2


2011년부터 2.0 버전이 개발되기 시작하여 알파, 베타 테스트를 거쳐 2013년 6월에 2.0 정식버전이 발표되었다. 정식버전으로 오면서 아이콘, 로고, IDE 디자인 등이 일신되었고 사이트도 리뉴얼되었다. 2.0과 구버전과의 기본적인 호환성은 크게 문제가 없는 듯하나 일부 클래스가 삭제, 변경된 부분이 있고 종종 구버전용의 라이브러리가 문제를 일으키는 경우도 있다고 알려져 있으며. 렌더러가 변경되면서 화면 출력이 아주 미묘하지만 다르게 나오는 경우가 있어 같은 소스를 컴파일 했을 때 100% 동일한 결과가 나온다고 보장할 수 없다. 이런 문제로 인해 부득이하게 프로세싱 1의 최종버전인 1.5.1 버전(2011.5.15 발표)을 계속해서 사용해야 하는 경우도 드물게 생기는 듯.
2.0 버전의 대체적인 개선 사항은 이하와 같다.
  • OpenGL 지원 강화 : OpenGL 라이브러리 자체가 리뉴얼 되기도 하였고, 기존의 소프트웨어 렌더링 기반의 P2D, P3D 모드는 아예 제거되어 이들 역시 OpenGL 렌더러를 사용하게 되었다. 렌더러가 바뀐 덕분에 특정 코드의 경우 미묘하게 표현이 달라지는 경우가 있다.
  • JavaScript 모드의 추가 : 결과물을 기존의 JVM이 아닌 JavaScript 기반으로 내보낼 수 있다. 이 기능으로 인해 제작한 스케치를 쉽게 웹으로 공유할 수 있게 되었다. 실은 기존에 있던 processing.js라는 파생 프로젝트의 결과를 피드백한 것. 다만 한계는 있어서 기존 JVM 모드의 모든 기능을 사용할 수 있는 것은 아니다.
  • Video 라이브러리의 완전 교체 : 퀵타임에 의존하는 1.5.1 버전까지의 Video 라이브러리를 버리고 GStreamer[11] 기반의 새로운 라이브러리로 완전히 리뉴얼하였다.
  • XML 지원 강화. XML이라는 새로운 클래스가 기존의 XMLElement 클래스를 대체하게 되었다.
  • Table 클래스의 추가. .CSV등의 테이블 포맷을 직접 프로세싱에서 다룰 수 있게 되었다. 실제로 사용해보면 뭔가의 데이터를 저장해서 입출력하는 작업을 할때 굉장히 편리하다.
  • 64비트 지원 강화. 맥OS버전의 경우 아예 옵션에서 32비트와 64비트를 설정이 가능하다. 윈도 버전의 경우는 예전과 동일하게 별도의 바이너리로 제공.
  • Java 애플릿 지원 삭제. 애플릿 자체가 요즘은 잘 사용되지 않는 것도 있고 JavaScript 모드 지원으로 인해 웹공개가 쉬워졌으므로 더 이상 필요없다고 판단한 듯 하다. 하지만 JavaScript 모드의 호환이 완전치 않다는 점을 생각하면 약간 아쉬운 점.
  • MovieMaker 클래스 삭제. 프로세싱으로 만든 스케치 실행 화면을 동영상으로 만드는 기능이었는데 퀵타임에 의존하는 기능이라서 잘렸다. 대신 MovieMaker 툴이 IDE에 내장되도록 변경되었다.
이 외에도 자잘한 변화 및 개선점이 상당히 많다. 이 중 가장 반길만한 변화는 동영상 및 웹캠 관련 표준 라이브러리인 Video 라이브러리의 리뉴얼. 구버전인 1.5.1까지는 애플QuickTime Player의 기능에 의존하는 구조였는데, OS X의 경우에는 별 문제가 되지 않지만 윈도우즈에서는 매우 문제가 심각하다. 왜 문제가 심각한지는 QuickTime Player 문서를 보면 상세히 나오지만, 프로세싱 때문에 퀵타임 설치하고 MIME 타입 다 꼬이는 경험을 하고 나면 애플의 만행에 이를 갈게 된다(...). 더욱 더 흉악한 것은 '''QT Lite나 퀵타임 얼터너티브 같은 변종버전으로 우회도 불가능했다는 것. 엎친데 덮친 격으로 퀵타임이 없는 리눅스는 그냥 쿨하게 Video 라이브러리가 지원이 안됐었다.
이런 문제 때문에 GStreamer 기반의 외부 라이브러리인 GSVideo라는 것을 사용하는 사람이 많았는데, 프로세싱 2.0에서 리뉴얼된 Video 라이브러리가 바로 이 GSVideo의 개량버전. 덕분에 퀵타임 같은 설치를 하지 않아도 동영상/웹캠 관련 기능이 사용가능해졌으며 드디어 리눅스에서도 Video 라이브러리를 사용할수 있게 되었다. 부수적인 효과로 mov 파일만 지원하던 구버전보다 지원하는 포맷도 크게 늘었다. 다만 일부 사용자의 경우 GStreamer가 문제를 일으켜서 이유없이 에러를 뱉으며 Video 라이브러리를 사용할 수 없는 경우가 있다. 똑같은 소스인데 누구 컴퓨터에서는 돌아가고 누구 컴퓨터에서는 안돌아가서 사람 환장하게 만드는 에러였다.
2013년 10월에 공개된 2.1버전에서 IDE의 폰트를 직접 설정할 수 있는 기능[12]이 들어가면서 소스파일에 있는 한글 주석이 깨지는 현상이 발생한다. 환경설정에서 폰트를 굴림체 등의 한글이 지원되는 폰트로 바꾸면 깨지는 문제는 해결되기는 하는데, 이번에는 한글 자간이 반각 단위로 출력되면서 글씨가 서로 겹치는 기괴한 문제가 발생한다(...). 이 문제는 한자 등의 2바이트 전각 문자에서 공통적으로 일어나는 것으로 해당 문제는 개발자인 Ben Fry에게 리포트 되었으니 다음 버전에서는 개선될 것 같다. 그때까지는 이상이 없는 2.0.3 버전을 쓰던지 영문으로 주석을 달자(...). 그밖에도 2.1버전은 Serial 클래스에도 심각한 버그가 있었으나 이 문제는 2.1.1에서 해결. 하지만 전각문자 겹치는 문제는 해결이 안됐다.
사실 문자 입력관계로는 2.0.3 등의 이전 버전에도 문제가 있는데, 프로세싱 2가 되면서 일본어 등의 비알파벳계 문자들의 입력을 IDE에서 지원하는 옵션이 생겼지만 이 옵션을 켜면 윈도판 기준으로 한글의 경우에는 오히려 문자 입력이 꼬이는 기괴한 문제가 발생한다. 옵션을 끄면 1.5 시절처럼 타이핑 중간 과정이 제대로 출력되지 않지만 입력 자체는 제대로 된다. 프로세싱/아두이노 IDE의 한글입력 문제는 꽤나 고질적인 문제인데 국내에서는 사용자가 적어서 그런지 리포트가 제대로 되지 않는 듯.
프로세싱 2의 최종버전은 2.2.1(2014.5.19 발표). 이후에는 프로세싱 3로 이행했다.

3.2. 프로세싱 3


프로세싱 1에서 2로 이행할 때처럼 알파/베타테스트를 진행하다 2015년 9월 30일 3.0 버전을 정식 릴리스했다. 1때보다 2때의 알파/베타기간이 (많이) 짧았는데, 3의 알파/베타기간은 더 짧았던 것을 보면 개발환경이 점점 좋아지고 있는 듯하다. 3가 되면서 로고 디자인도 새로 바뀌었다. 프로세싱 3의 변경점은 대략 다음과 같다.
  • 렌더러 재구축 : 2.0에서 대대적으로 도입한 OpenGL 렌더러를 재구축했다. 기존의 렌더러보다 속도가 빨라졌고 새로 추가된 'FX2D' 렌더러는 레티나 디스플레이 같은 고해상도 환경에서 더욱 빠른 렌더링을 자랑한다고.
  • 에디터/UI의 개선 : 기존에 사용해왔던 프로세싱 IDE를 새로 갈아 엎었다. 비주얼스튜디오나 이클립스 같은 다른 IDE에서는 당연하게 제공되어온 자동완성 기능이 드디어 지원되고[14] 디버거도 추가. 제대로 된 IDE의 꼴을 갖춰나가고 있다.
    • IDE가 다국어 지원을 하게 되면서 한국어도 지원된다. 다만 메뉴 정도만 한글화되어있고 메시지는 예전 그대로. 초반엔 고질적인 한글 입력문제(문자가 겹치거나 하는 현상 등)가 여전히 존재했으나 3.1 버전부터는 입력이 매끄럽지 않은대로[13] 일단 한글 입력은 문제없이 가능하다. 참고로 초기 설정에서는 글꼴이 영문 전용(Source Code Pro)이라 한글이 깨져나오므로 원활하게 사용하고 싶거든 파일>환경설정에서 글꼴을 굴림체 같은 한글 글꼴로 설정하고 사용하자.
    • 3.3 버전 기준으로 다국어 지원에서 한글화가 상당히 많이 진척되었다. 일부 한글화가 안된 메뉴가 있으나 웬만큼 불편하지 않게 사용가능한 수준. 코드 입력시 한글이 깨지거나 겹치거나 하는 괴현상도 사라졌다. 한국어로 인식하면 기본 글꼴도 굴림체로 잡혀서 나오므로 굳이 글꼴을 바꾸지 않아도 한글이 깨지지 않는다. 초기 설정으로는 도깨비불 현상이 있으나 환경설정에서 '다국어 언어 입력 허용'을 체크해주면 정상적으로 한글 입력이 가능하다.
  • 고해상도 디스플레이 대응 : 4K나 레티나같은 고밀도 디스플레이가 점차 일반화되는 추세에 따라 이에 대응하는 함수를 추가하였다.
  • 통합 추가요소 관리자(Unified Contributions Manager) : 라이브러리, 모드, 도구 등 여러 요소를 추가/관리할 수 있는 관리자가 생겼다. 참고로 초기에는 기본인 JAVA 모드밖에 사용할 수 없고 안드로이드 모드나 자바스크립트 모드는 이 통합 추가요소 관리자를 통해 추가하도록 되어있다.
  • Applet 제거 : 코드를 다시 써서 더이상 PApplet 클래스가 자바의 java.awt.Applet을 베이스 클래스로 이용하지 않는다고 한다. 프로세싱에서 자바 애플릿으로 내보내기를 제거하려고 시도한지는 오래되었는데 아예 코드 의존성 자체를 없애버린 모양. 웹에 게시할때는 P5.js같은 자바스크립트 기반의 환경을 이용하면 되지만 아무래도 실행환경의 차이가 있으니만큼 좀 이상한 라이브러리를 썼다 하면 안되는 게 꽤 많다.
  • 새로운 기능/메소드(함수) 추가
    • FX2D 렌더러 : 2D 그래픽 퍼포먼스가 비약적으로 향상된다고 한다. 커다란 화면에서 많은 오브젝트를 뿌려야할 때 유용할 듯.
    • fullScreen() 함수 : 좀더 전체화면으로 디스플레이하기가 편리해졌다.
    • PVector 클래스 : 메소드 체이닝을 지원하게 되었다.
  • 그밖에 몇몇 함수나 환경변수의 사용방법이 변경된 것이 있다.
내부적으로는 프로세싱 2때만큼 갈아엎어지진 않은 인상이지만 외형적인 변화(UI 등)가 제법 있는 편이다. 대부분은 프로세싱 2때와 비슷하게 사용할 수 있고 프로세싱 2의 스케치북을 3로 마이그레이션하는 기능도 제공한다고 한다. 자동완성 기능과 디버거만으로도 3로 옮겨갈만한 요인은 충분할 듯.

4. 안드로이드 지원에 대해


2011년 4월에 공개된 1.5버전부터는 안드로이드 프로그래밍도 지원하기 시작했다. 프로세싱으로 제작한 스케치를 JVM이 아닌 안드로이드의 Dalvik VM에서 구동할 수 있도록 컴파일해주는 기능인데, 추가로 안드로이드 SDK를 설치할 필요가 있다. 아직은 제약이 많은 편이지만 자신이 만든 프로그램이 안드로이드 폰이나 태블릿에서 돌아가는 것을 보면 나름 뿌듯하다. 몇몇 안드로이드 모드 전용 코드가 있기는 하지만 대체적으로는 표준 자바 모드에서와 거의 똑같이 코딩하면 된다.
참고로 구버전인 1.5에서는 '''안드로이드 모드가 존재는 하지만 사용할 수 없다.'''. 이런 기괴한 상황이 생긴 이유는 안드로이드 SDK가 업데이트 되면서 예전 버전의 프로세싱과 호환이 되지 않는 부분이 생겼기 때문. 1.5 버전이 처음 등장했을 당시의 SDK에선 제대로 돌아갔었다. 현행 안드로이드 SDK를 이용하는 경우 1.5~2.0a6 버전에서 안드로이드 모드가 정상동작하지 않는다. 안드로이드 모드가 필요한 경우에는 2.0을 쓰자.
참고로 1.5 당시 지원한 버전은 2.1(API 7)과 2.2(API 8)였으나 현재는 2.3.3(API 10) 및 그 이상만을 지원한다. 제작자 입장에서도 아직 사용자가 좀 있는 2.2 정도는 계속 지원하고 싶었는데 만들다보니 상황이 그리 여의치 않았던 모양. 프로요 지원 중단은 현재는 대부분의 사용자가 진저브레드 이상을 사용하기 때문에 큰 문제가 안될지 모르나, 정말 폰이 구려서 프로요에서 진저브레드로 업그레이드를 지원하지 않는다거나[15] iPhone 등의 비 안드로이드 계열 폰을 사용하는 사람이 프로세싱으로 안드로이드 작업하려고 싼 구형 공기계 중고로 사서 에클레어나 프로요 올려서 잘 쓰다가 진저브레드 업그레이드 지원 안해서 망했어요가 됐다거나 하는 경우는 종종 있는 듯 싶다.
안드로이드 모드 사용에 필요한 조건은 다음과 같다.
  • 프로세싱 2.0a7 이상
  • 안드로이드 SDK 리비전 20 이상
  • 안드로이드 2.3.3 (진저브레드) 이상
프로세싱 3의 경우에는 기본적으로 Java모드만 세팅되어있기 때문에 안드로이드 모드 사용을 위해서는 컨트리뷰션 매니저에서 안드로이드 모드를 따로 다운로드 받아야한다. 물론 SDK도 미리 설치해야하는 것은 당연하다. 이밖에도 3에서는 Python 모드나 R 모드(!) 같은 것도 추가되었다.

5. 안드로이드 IDE


Calsign Labs의 APDE와 Kwipi의 에디터가 올라와 있다. 그중 APDE는 컴퓨터 자체에디터와 비교하고싶을 만큼 믿을 수 없는 퀄리티를 보여준다. 줄 수가 표시되지 않는 것만 빼면 완벽함.
개발사에서 만들어놓은 예제들도 높은 퀄리티를 자랑한다.
라이브러리 사용은 물론(PC 전용은 에러가 발생)이고 이클립스로 내보내기, 심지어는 버전관리 기능까지 있다고 한다.
빌드시 바로 안드로이드 기기에 앱을 깔아 사용할 수 있다.

6. 커리큘럼이 개설된 교육기관


교육기관명을 기준으로 가나다순으로 추가해주시고 간략한 커리큘럼 내용을 기록하여주십시오.

6.1. 대학교


본래의 목적이 목적이니만큼 주로 공과대학교의 1학년 프로그래밍 입문 과목이나 시각/영상디자인 관련 학과의 커리큘럼으로 많이 채용되고 있다. 본 문서가 처음 만들어질 무렵에는 프로세싱을 커리큘럼으로 채용한 학과가 그리 많지 않았으나 점차적으로 늘어가는 추세이며 이에 따라 본 문단의 내용도 늘어나고 있다.
  • 가톨릭대학교 : 미디어기술콘텐츠학과에서, 1학년 1학기 전공기초(필수)과목 '디지털콘텐츠창작입문'에서 포토샵과 Processing을 배운다.
  • 건국대학교 : 정보통신대학 컴퓨터공학부에서, 1학년 과목인 '창의적 공학 설계'에서 ASIT과 함께, Processing을 병행하여 가르치고 있다. 수업의 목표는 Processing으로 게임 제작하기.
  • 건국대학교 글로컬캠퍼스 : 미디어커뮤니케이션대학 다이나믹미디어학과에서, 1학년 전공필수인 '상호작용예술과 피지컬컴퓨팅' 수업시간에 Processing을 배운다. 초반에는 ellipse나 rect같은 기본 도형으로 작품을 만든다.
  • 경북대학교 : 컴퓨터학부 1학년 문화기술개론 시간때 배운다. 김상욱교수님께 배웠는데 직접 가르쳐주지는 않고 책을 보고 스스로 공부하게 한다. 움직이는 자동차를 총으로 쏴 맞추는 프로그렘을 만들었다.
  • 경상대학교 : 공과대학 항공우주 및 소프트웨어 공학부에서 3학년 전공선택인 '항공 그래픽스 및 시뮬레이션' 에서 배울 수 있다. 과목의 주된 내용은 아두이노와 각종 센서를 통해 상호작용하는 인터페이스를 만드는 것이며, 과목 자체는 정말 쉽다. 2020년까지 하석운 교수님께서 담당하셨지만, 곧 퇴직하시기에 과목 자체가 사라질 수 있다.
  • 경성대학교 : 디지털미디어학과 2학년이 되면 시각디자인 출신 김재명교수님에게 배울수있다. 프로세싱으로 게임이나 아이콘 등을 만든다.
  • 고려대학교 : 교양과목 '데이터로 표현하는 세상'에서 중간고사 후에 스크래치와 더불어 Processing을 다뤄볼 기회가 있다. 기본적인 기술을 쉽게 배울 수 있으니 들어볼 기회가 되는 위키러는 한 번 들어보는 것도 나쁘지 않다. 이 강좌는 iTunes U를 통해 무료 제공되니 재학생이 아니라도 들을 기회가 있다.
  • 국민대학교 : 국민대학교 조형대학 영상디자인학과와 시각디자인학과에 수업과정이 개설되어있다.
  • 동아방송예술대학교 : 뉴미디어콘텐츠과 1학년 2학기 '프로그래밍기초' 전공선택 강의에서 인터랙티브한 프로그래밍을 교육받는다.
  • 두원공과대학교 : 두원공과대학교 메카트로닉스과 네트워크 실무 수업 과정에 Processing을 배워 기본 도형이나 작품을 만든다.
  • 부산대학교 : 디자인학과 디자인앤테크놀로지전공의 피지컬컴퓨팅과 컴퓨터비전 과목에서 Processing언어와 Arduino를 배우고 있다. 2009년부터 프로세싱 수업을 진행하고 있다한다. 또한 1학년부터 3학년까지 C언어, Java, python, processing 등 다양한 프로그래밍언어와 자료구조를 배워 4학년 졸업작품에서 키넥트와 센서, 아두이노를 활용한 인터렉티브작품의 구현에 활용하고 있는 등 타 대학과 달리 디자인계열로서는 비교적 심도깊게 프로그래밍 언어를 배우고 있다.
  • 서강대학교 : Art & Technology 전공의 전공필수과목인 'Intro to Creative Computing'에서 프로그래밍을 처음 배우며 다루게 된다. 또다른 전공필수과목인 'Programming Interactivity'에서도 Processing을 이용한 인터랙티브 프로그래밍을 배운다.[16]
  • 서울대학교 : 연합전공 정보문화학 전공필수 과목 '정보문화기술입문'에서 2012년부터 Processing을 가지고 프로그래밍 코딩의 기초를 가르치고 있다. 2020년부턴 Processing 대신 Processing 기능을 지원하는 Javascript 라이브러리인 p5.js를 사용한다.
  • 서울과학기술대학교 : 공과대학 1학년 교양 과목인 프로그래밍 입문 과목 중 일부 수업에서 프로세싱을 사용한다. 원래 다른 반들처럼 C언어로 했는데 교수님이 재미없어서 바꾸셨다고(...) 수업 목표는 간단한 게임 제작이다.디자인학과에서도 2,3학년 전공선택 과목으로 배울 수 있다. 기계공학과 2학년 전공 선택 과목인 공학컴퓨터활용 과목에서도 2학기 때 Processing을 가르친다.
  • 서울시립대학교 : 시각디자인과 학부와 대학원에 개설되어 있다.
  • 서울여자대학교 : 콘텐츠디자인학과와 디지털미디어학과에 Processing을 다루는 과목이 최근에 개설되었다.
  • 서울예술대학교 : 영상학부 디지털아트전공 프로그래밍 관련 수업[17]에서 1학년때 아두이노와 프로세싱을 가르친다. 응용하는 부분도 많고 직접 작품도 만들기에 아마 우리나라에서 가장 프로세싱과 아두이노등의 예술계 언어도구를 많이 쓰는 곳일듯.
  • 성균관대학교 : 영상학과 전공선택 수업이다.
  • 성신여자대학교 : 산업디자인과 2학년 시각미디어 수업에서 프로세싱 언어를 배운다.
  • 숭실대학교 : IT대학 미디어학부에서는 1학년 전필 수업에서 프로세싱 언어를 배울 기회가 있다. 학년이 올라가면서 아두이노와의 연동 등으로 사용을 넓혀가고 있다.
  • 아주대학교 : 정보통신대학 미디어학과의 전공선택과목으로 Processing과 Arduino를 활용하는 과목이 생겼다.
  • 연세대학교 : 건축공학과의 2학년 필수교양으로 공학정보처리 시간에 배운다. 사실상 필수과목.
  • 연세대학교 미래캠퍼스 : 디자인ᆞ예술학부 - 디지털아트학과에서 전공수업으로 배운다. vvvv와 함께 거의 필수 과목.뱀발로 강좌 이름과 주제는 학기마다 다르지만 모 교수님 강의를 들으면 기본 툴로서 무조건 배우게 된다.(...)
  • 인하대학교 : 예술체육학부 디자인융합학과에서는 2학년 1학기 전공수업 '디자인프로그래밍'에서 Processing을 배울 기회가 있다. 3학년 1학기가 되면 '피지컬컴퓨팅'이란 수업을 통해 아두이노와의 연동하는 것까지 공부하게 된다.
  • 조선대학교 디자인공학과 : 2학년이 되면 아두이노와 함께 배운다. 물론 직접 가르쳐주지는 않는다. 졸업작품 중 하나로 미디어 아트 작품을 낼 때 아두이노와 led를 이용한 작품에 사용된다 전시 때 구동이 안되면 졸업을 못한다.
  • 제주대학교 : 컴퓨터교육과 1학년 필수교양 '컴퓨팅원리 및 패러다임' 과목
  • 중앙대학교 : 융합공학부 디지털이미징 전공의 '3D영상디자인' 강의에서 Maya와 함께 배운다. 같은 학기 '피지컬컴퓨팅' 강의에서 아두이노도 배우기때문에, 특유의 UI와 굉장히 친해질 수 있다.
  • 창원대학교 : 문화테크노학과
  • 한국과학기술원 : 산업 및 디자인 학과
  • 한국예술종합학교 : 미술원 예술사(학사과정) - '아티스트를 위한 프로그래밍','인터랙티브아트-프로그래밍' , 미술원 조형예술과 전문사(석사과정) - '그래픽스프로그래밍'등의 전공 커리큘럼을 통해 Processing, Arduino등을 배울수 있다. 미술원 조형예술과 전문사 인터랙티브아트 전공에서는 코딩과 키네틱아트에 대해 더 전문적으로 공부할 수 있다. 영상원 멀티미디어 영상과 예술사, 전문사 - 프로세싱, 아두이노, MaxMSP가 개설되어 있다
  • 한동대학교 : 전산전자과정 제외 모든 학생은 ICT 융합기초 과정을 이수해야 한다. ICT 융합기초 과정 3개 중 하나인 ICT 입문 과정에서는 필수로 2학점을 따야 하는데, 그러면 적어도 두 과목 중 하나를 들어야 한다. 하나는 소프트웨어 입문, 나머지 하나는 ICT 응용 입문이다. 이 중 소프트웨어 입문에서 Processing을 다룬다. 현, 2019학년도 기준
  • 한양대학교 서울캠퍼스 : 2015년부터 정보시스템학과 1학년 전산학개론 수업에서 기초적인 Processing 과제를 내준다. 숙제하는 과정에서 수많은 Reference 문서들을 통해 Processing을 개략적으로나마 배울 수 있다.
  • 홍익대학교 디자인·영상학부 - 커뮤니케이션 디자인 학과와 디지털 미디어 디자인 학과에서 인터랙션 트랙의 전공 수업으로 프로세싱 언어를 배운다.
디자인컨버전스학부 - 전공선택 과목에서 프로세싱 언어를 배운다. 4년동안 2번 이상의 인터렉션 수업을 들어야 졸업이 가능... 기존의 학과개편 전 2,3 학년들이 배우던 프로세싱을 1학년때부터 배울 수 있다.
  • 계원예술대학교 : 융합예술학과 - 컴퓨터 크리에이션이란 과목명으로 프로세싱수업이 구성되어 있다.
  • 대구대학교 : 컴퓨터정보공학부 - 컴퓨터공학 1학년 때 프로그래밍 입문 과목에서 수업을 한다. 학생들의 프로그래밍 진입장벽을 낮추기 위해 가능한 쉬운거부터 시작하자는 의미에서 하는거 같다.
  • 목원대학교 : 웹툰애니메이션과
  • 인천대학교 : 임베디스시스템공학과 1학년 전공선택 과목인 창의융합설계 과목에서 배운다.

6.2. 대학교 이외의 교육기관


  • 경기과학고등학교 : 교양과목 '정보융합설계'에서 C언어에서는 하기 힘들었던 그래픽 기반의 시뮬레이션을 통하여 수학/과학적으로 의미가 있는 것들을 Processing으로 만들어 볼 수 있다.
  • 대전과학고등학교 : 선택과목 '정보과학프로젝트'에서 Processing과 Arduino의 동시 학습을 통해 객체지향프로그래밍과의 융합 교육을 실시하고 있다.
  • 세종과학예술영재학교 : 3학년 과목인 정보과학프로젝트I, 정보과학프로젝트II에서 Processing을 이용하여 교육하고 있다. 정보과학프로젝트I에서는 Ben Fry의 책 Visualizing Data를 교재로 하여 데이터 시각화 프로젝트를 진행하고, 정보과학프로젝트II에서는 Daniel Shiffman의 Nature of code를 교재로 자연계 시뮬레이션을 다룬다.
  • 경북 안동시 안동교회 문화센터 : 안동대학교 컴퓨터공학과 교수인 안동교회 집사 분께서 역시 같은 학교의 대학원생이자 이 교회의 교인인 분과 함께 지도하신다.
  • 문지문화원 사이 : 매년 여름, 겨울에 있는 특강인 사이 아카데미에 아티스트를 위한 컴퓨터 프로그래밍 과목이 개설되고 있다. vvvv와 같은 인접 언어나 Arduino 기반의 피지컬 컴퓨팅 강의도 있으니 관심있는 이는 들어보는 것도 좋다. 학교에 적을 두지 않은 경우라면 몇 안되는 교육처라는 것이 이점.
  • 메이크 프로세싱 : 미디어 아트를 위한 공유 커뮤니티로 미디어 스페이스 문과 함께 정기적으로 워크샵을 진행하고 있으며, 프로세싱 포럼을 운영하고 있다. http://makeprocessing.com

7. 관련 문서



[1] LISP에 바탕한 교육용 언어. '터틀'이라는 로봇으로 그림을 그리는 것으로 유명하다.[2] Casey Reas와 Ben Fry의 MIT 미디어 연구소 시절 담당교수였다고 한다.[3] 물론 원한다면 OOP 개념도 적용 가능하다.[4] 능력 여하에 따라 게임 같은 것도 만들 수 있지만 애초에 그런 거 하라고 만든 언어가 아니라서 프로젝트가 커지면 커질수록 답이 안나온다.[5] 그나마 2010년대 중반 이후로 어도비가 플래시를 버리는 게 기정사실화되어감에 따라 액션 스크립트를 배우는 경우는 줄어드는 추세. 참고로 플래시는 2020년에 지원종료가 예정되어있다.[6] 오픈소스이고 오피셜 사이트의 튜터리얼이 충실한데다 다행히 외국에서는 나름 정보교환이 활발한 편이라 웹을 통해서 독학하기가 어렵지 않다. '''단, 영어를 잘하면.'''[7] 해외의 인지도도 미디어 아트 계통이 중심이기는 하다.[8] 링크된 본문에는 프로세싱이 언급되어있지 않으나 동영상을 보면 말미에 프로세싱과 SimpleOpenNI 라이브러리를 이용했다는 언급이 있다. SimpleOpenNI는 프로세싱에서 키넥트를 제어하기 위한 라이브러리.[9] 현행 3.x를 기준으로 하면 1.5.1(2011. 5. 15. 릴리즈)과 2.2.1(2014. 5. 19. 릴리즈) 버전이 구 버전의 파이널 버전에 해당한다.[10] 주로 DLL 파일 문제다. 간혹 DLL을 끌어다 쓰는 라이브러리가 있다. 32비트 DLL은 64비트 프로세스에서 호출이 불가능하기 때문에 64비트용 프로세싱에서 이런 걸 돌리면 라이브러리가 에러를 뱉는다.[11] 크로스플랫폼/오픈소스로 개발중인 멀티미디어 프레임워크. 그놈 등에서 사용한다.[12] 기존 버전에서도 preferences.txt 파일을 직접 편집해서 설정이 가능하기는 했다.[13] 문자가 완성되지 않으면 화면에 표시되지 않는 등 좀 문제는 있지만 입력은 일단 정상적으로 된다. 외국계 프로그램에서 한글을 입력할 때 흔하게 보이는 현상으로, 원인을 자세히 알고 싶으면 도깨비불 현상 문서를 참조.[14] 환경설정에서 옵션을 켜야한다. 단축키는 ctrl+space.[15] hTC 디자이어 처럼 이런 케이스가 꽤 있다.[16] 원래 15학번은 'Intro to Creative Computing' 과목에서 Python을 배웠으나, 2016학년도부터 중핵필수과목인 '컴퓨팅사고력'이 신설되고, 해당 과목에서 Python을 배우기 시작하면서 현행 체제로 바뀌었다. 다만, ICC에서 Python을 배우는 것은 15학번 때 바뀐 부분이었기 때문에, 결국 16학번부터는 14학번 때의 커리큘럼으로 돌아간 셈이다.[17] IA전공에선 전공선택, CT전공에선 전공필수