SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
당신은 지금 어떤 도구로
작업하고 있나요?
누설
2015/2016년 WeSA 공연에 참가하여, 다른 아티스트들의
사용 도구들을 어깨너머로 훔쳐보았습니다. 기억나는대로 적어보자면
1. Max/MSP
2. SuperCollider
3. Ableton Live
4. QuartzComposer
5. OpenFrameworks
6. Processing
9. 기타(Modular System, Arduino, Lisp ...)
등을 여러가지 형태로 조합하여 사용하고 있었습니다.
7. PureData
8. vvvv
미신
"A 프로그램은 B 프로그램보다 느려....."
"C 프로그램은 불안정하다던데....."
"저거 D 프로그램으로 만든거야? D 로도 저렇게 된다고?"
"E 프로그램은 윈도우에서만 돌지 않아?"
"F 프로그램은 이제 개발 안된다는데...."
"G 프로그램은 우리나라에 쓰는 사람들이 없어서
정보 교환이 안돼"
그리고 공포
"지금 내가 공부하고 있는 이 도구는 확실한 비전이 있을까?"
"이번에 새로 나온 X 프로그램이 지금 내가 공부하는 Y 프로그램보다 좋다는데 지금이라도
Y 때려치우고 X 를 해야되나?"
"지금은 공부 중이니까 그냥 쓰는데, 나중에 혹시 내가 잘되서 아주 큰 프로젝트를 맡았는데
그때가서 내가 쓰는 이 도구의 성능이 문제가 되지는 않을까?"
"아몰랑...그냥 Max/MSP 하면 되는거 아냐?"
Value
매일 같이 쏟아지는 새로운 기술과 도구들.......
혹시나 뒤쳐지지 않을까 하는 불안함 속에 잠들지 못하던 수 많은 밤
그 속에서 변하지 않는 가치가 있다면.....?
고전과 새로움을 관통하는 큰 줄기가 있지는 않을까?
in C
미디어 아티스트가 되길 원하는 당신의 자식에게 당신은
어떤 도구를 공부하길 권하시겠습니까?
in C
개요
이 강좌는 C 언어의 관점에서, 현재 멀티미디어 프로그래밍에 널리 사용되는 기술들을
두루 살펴보는 강좌입니다.
C언어 강좌가 아닙니다.
당신은 아마 C언어로 해야 할 일이 그렇게 많지는 않을 지도 모릅니다. 평생 쓸 일이 없을지도 모르죠.
하지만 C 언어를 공부함으로써, 당신은 Max/MSP 혹은 SuperCollider 를 더 잘 사용할 수 있게
될 것 입니다.
그런 기운이 옵니다.
대상
1. 프로그래밍에 입문하고자 하시는 분들
있는건지 답답하고 불안한 분들
C언어라고 하여, 어렵고 복잡한 내용을 다루지 않습니다.
2. Max/MSP 나 SuperCollider 등을 사용하고는 있는데 이걸 지금 개념차게 쓰고
철저하게 이해 중심, 개념 탑재를 위한 여러 기술들을 두루 체험하는 것을 목표로 합니다.
이 후 공부한 내용들을 어떻게 실전에 접목 할 것인지에 대한 여러 다양한 가능성을 살펴봅니다.
Do it your self
당신의 A 프로그램이 X 라는 기능을 지원하지 않는다면 당신은 어떻게 하시겠습니까?
1. X 기능을 지원하는 B 프로그램을 조합한다.
2. 사실 X 라는 기능은 나에게 꼭 필요한 게 아니었어 라고 정리하고, X 라는 기능을
머리 속에서 지운다.
4. 간지나게 X 기능을 구현하여 A 프로그램을 확장한다. X 기능을 원하는 다른 유저들에게
능력자로 칭송받으며, 페이스북 좋아요의 갯수를 신경쓴다.
3. 테크놀로지의 세계에 염증을 느끼고, 우크렐레를 구입한 후 오키나와로 떠난다.
커리큘럼
문법은 가볍게, 도구는 심플하게
1주차
Environment
- Development ToolKit (OS X)
- Cygwin (Window)
- Linux
Tool
- Atom (Editor)
- Clang / gcc (C compiler)
문법
- 변수와 자료형
- 함수
- 컴파일(build phase)
전처리기 -> 컴파일러 -> 어셈블러 -> 링커 -> 로더
<최신 atom 소스 편집기>
보다는 텍스트로 이루어진 소스코드가 어떠한 과정을 거쳐, 실행가능한 프로그램이 되는지를
중심으로 살펴봅니다
문법 깊숙히
2주차
- 조건과 반복
C 언어 전체 문법이 아닌, 이 후 이어지는 내용들을 공부하는데 필요한 핵심들만을 중심으로
간추려 살펴봅니다.
- 배열
- 포인터
1) 포인터는 어렵다?
포인터가 실제 활용되는 패턴과 사례를 통해 포인터에 대한 미신과 오해를 까부수자
- 유저 정의 자료형(구조체 / 공용체 / 열거형)- 유저 정의 자료형(구조체 / 공용체 / 열거형)
- 메모리 할당
터미널-command line interface
3주차
명령행 환경에서 파일을 다루고, 시스템을 관리하는 방법을 공부합니다.
특히 git 를 통한 소스코드 이력 관리, Makefile 을 통한 빌드 시스템을 구축하는 방법을 배우며
homebrew(Mac), Cygwin(Window), apt-get(Linux) 등을 사용하여 필요한 도구들을
쉽게 설치하는 방법등을 살펴보겠습니다.
"이제 당신도 해커!"
Input and Output
4주차
File I/O
Network I/O (TCP/IP)
- TCP
- UDP
Serial I/O
PortMidi 를 이용한 MIDI I/O
이제 여려분들의 코드를 Real World 와 만나게 합시다!
for text, sound, image
Network I/O
MIDI I/O
Audio I/O Serial I/O
Video I/O
RealTime Audio
5주차
PortAudio 를 사용하여 실시간 오디오 처리를 공부합니다.
PortAudio 는 플랫폼마다의 오디오드라이버(CoreAudio,ASIO, ALSA) 를 동일한 API 로
처리할 수 있도록 도와주는 오픈소스 라이브러리입니다.
이 후 위에서 공부한 DSP 코드를 SuperCollider 및 Max/MSP 등에 추가하여
자신만의 UGen / External 을 만드는 방법을 살펴봅니다.
각각의 프로그램을 접하신 경험이 없으셔도 괜찮습니다.
중요한 건 여러분들의 코드가 어떠한 과정으로 다른 프로그램에 내장되는지를
이해하시면 됩니다!
OpenGL
6주차
OpenGL 을 사용하여 3D graphics 를 구현합니다.
이를 통해 Max/MSP(Jitter), Processing, OpenFrameworks 가 어떻게 OpenGL 을
사용하고 있는 지를 살펴봅니다.
- GLUT / SDL / GLFW
- Legacy OpenGL
- Modern OpenGL
- Shader(Programmable Pipeline)
- DirectX, Metal, Vulkan 과의 관계
1) Fixed Pipeline
1) use VBO, VAO
1) why need toolkit?
1) GLSL
쉐이더(GLSL) 을 살펴보고, 동일한 코드를 여러 다른 프로그램에서 활용하는 방법과
특정 플랫폼 / 프로그램에 종속적이지 않은 기술의 장단점을 생각해봅니다.

Weitere ähnliche Inhalte

Was ist angesagt?

오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
파이썬으로 할 수 있는 일 - 파이썬 기초 교육
파이썬으로 할 수 있는 일 - 파이썬 기초 교육파이썬으로 할 수 있는 일 - 파이썬 기초 교육
파이썬으로 할 수 있는 일 - 파이썬 기초 교육테리엇
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
C++과 Lua script연동
C++과 Lua script연동C++과 Lua script연동
C++과 Lua script연동선협 이
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 
대신 귀여운 리눅스를 드리겠습니다
대신 귀여운 리눅스를 드리겠습니다대신 귀여운 리눅스를 드리겠습니다
대신 귀여운 리눅스를 드리겠습니다RangHo Lee
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑Kiyoung Moon
 

Was ist angesagt? (7)

오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
파이썬으로 할 수 있는 일 - 파이썬 기초 교육
파이썬으로 할 수 있는 일 - 파이썬 기초 교육파이썬으로 할 수 있는 일 - 파이썬 기초 교육
파이썬으로 할 수 있는 일 - 파이썬 기초 교육
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
C++과 Lua script연동
C++과 Lua script연동C++과 Lua script연동
C++과 Lua script연동
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
대신 귀여운 리눅스를 드리겠습니다
대신 귀여운 리눅스를 드리겠습니다대신 귀여운 리눅스를 드리겠습니다
대신 귀여운 리눅스를 드리겠습니다
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 

Andere mochten auch

Tugas summary dina budiarti maulidia
Tugas summary dina budiarti maulidiaTugas summary dina budiarti maulidia
Tugas summary dina budiarti maulidiaDina Budiarti
 
Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...
Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...
Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...Experientiel Sàrl
 
Aprendizaje social y personalizado conectarse para aprender
Aprendizaje social y personalizado conectarse para aprenderAprendizaje social y personalizado conectarse para aprender
Aprendizaje social y personalizado conectarse para aprenderJordi Jubany
 
Do sistema nacional de transito
Do sistema nacional de transitoDo sistema nacional de transito
Do sistema nacional de transitoizaias pedro
 
The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)
The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)
The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)mamiko102
 
Design of flat plate slab and its Punching Shear Reinf.
Design of flat plate slab and its Punching Shear Reinf.Design of flat plate slab and its Punching Shear Reinf.
Design of flat plate slab and its Punching Shear Reinf.MD.MAHBUB UL ALAM
 
Aspectos legales del uso de las TIC en Educación #aulablog13
Aspectos legales del uso de las TIC en Educación #aulablog13Aspectos legales del uso de las TIC en Educación #aulablog13
Aspectos legales del uso de las TIC en Educación #aulablog13antonio Omatos Soria
 
Trends and their meaning
Trends and their meaningTrends and their meaning
Trends and their meaningKai Platschke
 

Andere mochten auch (16)

Tugas summary dina budiarti maulidia
Tugas summary dina budiarti maulidiaTugas summary dina budiarti maulidia
Tugas summary dina budiarti maulidia
 
JSDC Portfolio
JSDC PortfolioJSDC Portfolio
JSDC Portfolio
 
Decide
Decide Decide
Decide
 
ProjetoProinfo: reciclagem
ProjetoProinfo: reciclagemProjetoProinfo: reciclagem
ProjetoProinfo: reciclagem
 
Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...
Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...
Experientiel - Proposez de meilleures expériences clients pour acquérir et fi...
 
Sentença sobre Acidente típico
Sentença sobre Acidente típicoSentença sobre Acidente típico
Sentença sobre Acidente típico
 
JGFresume2016
JGFresume2016JGFresume2016
JGFresume2016
 
Aprendizaje social y personalizado conectarse para aprender
Aprendizaje social y personalizado conectarse para aprenderAprendizaje social y personalizado conectarse para aprender
Aprendizaje social y personalizado conectarse para aprender
 
Do sistema nacional de transito
Do sistema nacional de transitoDo sistema nacional de transito
Do sistema nacional de transito
 
The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)
The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)
The 30th anniversary ceremony (Soroptimist Wakayama-Kinan)
 
Deepanbharathi_CV
Deepanbharathi_CVDeepanbharathi_CV
Deepanbharathi_CV
 
Competency mapping
Competency mappingCompetency mapping
Competency mapping
 
Design of flat plate slab and its Punching Shear Reinf.
Design of flat plate slab and its Punching Shear Reinf.Design of flat plate slab and its Punching Shear Reinf.
Design of flat plate slab and its Punching Shear Reinf.
 
Aspectos legales del uso de las TIC en Educación #aulablog13
Aspectos legales del uso de las TIC en Educación #aulablog13Aspectos legales del uso de las TIC en Educación #aulablog13
Aspectos legales del uso de las TIC en Educación #aulablog13
 
Stakeholder Mapping
Stakeholder MappingStakeholder Mapping
Stakeholder Mapping
 
Trends and their meaning
Trends and their meaningTrends and their meaning
Trends and their meaning
 

Ähnlich wie In c

소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자Deogtae Kim
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)NAVER D2
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
졸업후 취업까지.ssul
졸업후 취업까지.ssul졸업후 취업까지.ssul
졸업후 취업까지.ssul승표 홍
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다KWON JUNHYEOK
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
 
3주차 language
3주차 language3주차 language
3주차 language준혁 이
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
2016-06-28 진로체험학습
2016-06-28 진로체험학습 2016-06-28 진로체험학습
2016-06-28 진로체험학습 용호 조
 
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotJavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotCirculus
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellijSewon Ann
 
16 학술제 마무리 자료
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료Junyoung Jung
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 

Ähnlich wie In c (20)

Native A/V
Native A/VNative A/V
Native A/V
 
소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
졸업후 취업까지.ssul
졸업후 취업까지.ssul졸업후 취업까지.ssul
졸업후 취업까지.ssul
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
 
프로그래머
프로그래머프로그래머
프로그래머
 
3주차 language
3주차 language3주차 language
3주차 language
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
Hello std.io 유명환_20140125
Hello std.io 유명환_20140125Hello std.io 유명환_20140125
Hello std.io 유명환_20140125
 
2016-06-28 진로체험학습
2016-06-28 진로체험학습 2016-06-28 진로체험학습
2016-06-28 진로체험학습
 
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotJavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and Robot
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellij
 
16 학술제 마무리 자료
16 학술제 마무리 자료16 학술제 마무리 자료
16 학술제 마무리 자료
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 

In c

  • 1. 당신은 지금 어떤 도구로 작업하고 있나요?
  • 2. 누설 2015/2016년 WeSA 공연에 참가하여, 다른 아티스트들의 사용 도구들을 어깨너머로 훔쳐보았습니다. 기억나는대로 적어보자면 1. Max/MSP 2. SuperCollider 3. Ableton Live 4. QuartzComposer 5. OpenFrameworks 6. Processing 9. 기타(Modular System, Arduino, Lisp ...) 등을 여러가지 형태로 조합하여 사용하고 있었습니다. 7. PureData 8. vvvv
  • 3. 미신 "A 프로그램은 B 프로그램보다 느려....." "C 프로그램은 불안정하다던데....." "저거 D 프로그램으로 만든거야? D 로도 저렇게 된다고?" "E 프로그램은 윈도우에서만 돌지 않아?" "F 프로그램은 이제 개발 안된다는데...." "G 프로그램은 우리나라에 쓰는 사람들이 없어서 정보 교환이 안돼"
  • 4. 그리고 공포 "지금 내가 공부하고 있는 이 도구는 확실한 비전이 있을까?" "이번에 새로 나온 X 프로그램이 지금 내가 공부하는 Y 프로그램보다 좋다는데 지금이라도 Y 때려치우고 X 를 해야되나?" "지금은 공부 중이니까 그냥 쓰는데, 나중에 혹시 내가 잘되서 아주 큰 프로젝트를 맡았는데 그때가서 내가 쓰는 이 도구의 성능이 문제가 되지는 않을까?" "아몰랑...그냥 Max/MSP 하면 되는거 아냐?"
  • 5. Value 매일 같이 쏟아지는 새로운 기술과 도구들....... 혹시나 뒤쳐지지 않을까 하는 불안함 속에 잠들지 못하던 수 많은 밤 그 속에서 변하지 않는 가치가 있다면.....? 고전과 새로움을 관통하는 큰 줄기가 있지는 않을까?
  • 7. 미디어 아티스트가 되길 원하는 당신의 자식에게 당신은 어떤 도구를 공부하길 권하시겠습니까?
  • 8.
  • 10. 개요 이 강좌는 C 언어의 관점에서, 현재 멀티미디어 프로그래밍에 널리 사용되는 기술들을 두루 살펴보는 강좌입니다. C언어 강좌가 아닙니다. 당신은 아마 C언어로 해야 할 일이 그렇게 많지는 않을 지도 모릅니다. 평생 쓸 일이 없을지도 모르죠. 하지만 C 언어를 공부함으로써, 당신은 Max/MSP 혹은 SuperCollider 를 더 잘 사용할 수 있게 될 것 입니다. 그런 기운이 옵니다.
  • 11. 대상 1. 프로그래밍에 입문하고자 하시는 분들 있는건지 답답하고 불안한 분들 C언어라고 하여, 어렵고 복잡한 내용을 다루지 않습니다. 2. Max/MSP 나 SuperCollider 등을 사용하고는 있는데 이걸 지금 개념차게 쓰고 철저하게 이해 중심, 개념 탑재를 위한 여러 기술들을 두루 체험하는 것을 목표로 합니다. 이 후 공부한 내용들을 어떻게 실전에 접목 할 것인지에 대한 여러 다양한 가능성을 살펴봅니다.
  • 12. Do it your self 당신의 A 프로그램이 X 라는 기능을 지원하지 않는다면 당신은 어떻게 하시겠습니까? 1. X 기능을 지원하는 B 프로그램을 조합한다. 2. 사실 X 라는 기능은 나에게 꼭 필요한 게 아니었어 라고 정리하고, X 라는 기능을 머리 속에서 지운다. 4. 간지나게 X 기능을 구현하여 A 프로그램을 확장한다. X 기능을 원하는 다른 유저들에게 능력자로 칭송받으며, 페이스북 좋아요의 갯수를 신경쓴다. 3. 테크놀로지의 세계에 염증을 느끼고, 우크렐레를 구입한 후 오키나와로 떠난다.
  • 14. 문법은 가볍게, 도구는 심플하게 1주차 Environment - Development ToolKit (OS X) - Cygwin (Window) - Linux Tool - Atom (Editor) - Clang / gcc (C compiler) 문법 - 변수와 자료형 - 함수 - 컴파일(build phase) 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 -> 로더 <최신 atom 소스 편집기> 보다는 텍스트로 이루어진 소스코드가 어떠한 과정을 거쳐, 실행가능한 프로그램이 되는지를 중심으로 살펴봅니다
  • 15. 문법 깊숙히 2주차 - 조건과 반복 C 언어 전체 문법이 아닌, 이 후 이어지는 내용들을 공부하는데 필요한 핵심들만을 중심으로 간추려 살펴봅니다. - 배열 - 포인터 1) 포인터는 어렵다? 포인터가 실제 활용되는 패턴과 사례를 통해 포인터에 대한 미신과 오해를 까부수자 - 유저 정의 자료형(구조체 / 공용체 / 열거형)- 유저 정의 자료형(구조체 / 공용체 / 열거형) - 메모리 할당
  • 16. 터미널-command line interface 3주차 명령행 환경에서 파일을 다루고, 시스템을 관리하는 방법을 공부합니다. 특히 git 를 통한 소스코드 이력 관리, Makefile 을 통한 빌드 시스템을 구축하는 방법을 배우며 homebrew(Mac), Cygwin(Window), apt-get(Linux) 등을 사용하여 필요한 도구들을 쉽게 설치하는 방법등을 살펴보겠습니다. "이제 당신도 해커!"
  • 17. Input and Output 4주차 File I/O Network I/O (TCP/IP) - TCP - UDP Serial I/O PortMidi 를 이용한 MIDI I/O 이제 여려분들의 코드를 Real World 와 만나게 합시다! for text, sound, image Network I/O MIDI I/O Audio I/O Serial I/O Video I/O
  • 18. RealTime Audio 5주차 PortAudio 를 사용하여 실시간 오디오 처리를 공부합니다. PortAudio 는 플랫폼마다의 오디오드라이버(CoreAudio,ASIO, ALSA) 를 동일한 API 로 처리할 수 있도록 도와주는 오픈소스 라이브러리입니다. 이 후 위에서 공부한 DSP 코드를 SuperCollider 및 Max/MSP 등에 추가하여 자신만의 UGen / External 을 만드는 방법을 살펴봅니다. 각각의 프로그램을 접하신 경험이 없으셔도 괜찮습니다. 중요한 건 여러분들의 코드가 어떠한 과정으로 다른 프로그램에 내장되는지를 이해하시면 됩니다!
  • 19. OpenGL 6주차 OpenGL 을 사용하여 3D graphics 를 구현합니다. 이를 통해 Max/MSP(Jitter), Processing, OpenFrameworks 가 어떻게 OpenGL 을 사용하고 있는 지를 살펴봅니다. - GLUT / SDL / GLFW - Legacy OpenGL - Modern OpenGL - Shader(Programmable Pipeline) - DirectX, Metal, Vulkan 과의 관계 1) Fixed Pipeline 1) use VBO, VAO 1) why need toolkit? 1) GLSL 쉐이더(GLSL) 을 살펴보고, 동일한 코드를 여러 다른 프로그램에서 활용하는 방법과 특정 플랫폼 / 프로그램에 종속적이지 않은 기술의 장단점을 생각해봅니다.