ABOUT US   I   LOCATION   I   WeSA   I   SIGN UP

Code as Art - in C/C++

2020년 7월 4일 개강. 매주 토요일 16:00~19:00



Sungmin Park - WeSA Festival 2016 AudioVisual Performance


< 내용 >

대부분의 플랫폼에서 C/C++ 은 네이티브 언어입니다. 수많은 멀티미디어 프로그램(Max/MSP, SuperCollider, Pd, OpenFrameworks 등) 들이 C/C++ 로 만들어져 있습니다. [in C/C++] 강좌는 C/C++ 를 공부하고 이를 통해 고성능 멀티미디어 개발, 기능 확장, 문제 해결 기법들을 살펴봅니다. 결과적으로 C/C++ 을 직접 사용하지 않더라도, 당신이 사용하는 여러 툴에 대한 이해, 효과적인 사용방법, 확장 가능성등을 심도있게 살펴볼 수 있는 기술적/디지털 식견을 가지도록 하는 것이 이 강좌의 목표입니다.



< 강의대상 >

1. 프로그래밍에 입문하고자 하시는 분들
2. 컴퓨터 프로그래의 구조, 원리, 작동 방식등을 이해하고 싶으신 분들
3. Max/MSP 나 SuperCollider, OpenFrameworks 등의 툴을 더 잘 이해하고 깊이 있게 사용하고자 하시는 분들



< 필요한 준비 사항 >

노트북 (Mac 혹은 Windows)


< 구성 >

Day 1
1. 객체지향 프로그래밍 : 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
2. 기초문법 : 조건과 반복 / 변수와 함수
3. 클래스 설계

Day 2
1. 자료구조 stl(standard template library) : 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 여기서 설명하는 자료구조는 Max, SuperCollider, Processing 등의 다른 프로그래밍 언어/환경에서도 동일하게 사용되는, 반드시 숙지해야 하는 개념이다. 데이터를 어떻게 저장하고, 어떻게 다시 꺼내서 활용 할 것인지에 대해 공부해보자.
2. 포인터 / 스마트 포인터 / 레퍼런스

Day 3
1. 컴파일러 : 인간이 읽고 쓴 소스파일이 어떤 과정을 거쳐 컴퓨터(CPU)가 읽고 실행하는 바이너리가 되는가 / 컴파일러 옵션 / 바이너리 파일(실행파일 / 동적라이브러리)의 의존성 확인하기
2. Build 자동화 : 여러 파일들끼리의 의존성과 각 파일에 필요한 명령을 정의함으로써 프로그램을 컴파일할 수 있으며 최종 프로그램을 만들 수 있는 과정을 서술할 수 있는 빌드 도구를 알아본다. (빌드자동화 도구인 Make / CMake 사용법 공부하기)
3. 패키지 관리 : Homebrew(Mac), apt-get/yum(Linux), Chocolatey(Windows)를 사용하여 오픈소스 라이브러리를 어떻게 쉽게 설치하고 관리하는지 살펴본다.

Day 4
1. Modern C++ : C++ 11 이후에 등장한 새로운 문법 / 라이브러리등 유용한 기능들을 살펴봅니다.
2. 소켓프로그래밍 : 네트워크 소켓은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다.

Day 5
1. 멀티쓰레드 프로그래밍 : 두 가지 이상의 작업을 동시에 실행 하는 방법(동시성) / 한 가지 작업을 여러 쓰레드(Worker)가 나누어 성능을 향상시키는 방법(병렬성)
2. 쓰레드 동기화 : 멀티 쓰레드는 왜 동기화 해야 하는가? / 여러 쓰레드가 하나의 자원에 동시에 접근했을때 발생되는 문제점 / 어떻게 해결하는가?
3. IPC(Inter Process Communication) : 여러 프로그램들 간의 데이터 교환

Day 6
동적/공유 라이브러리 : C/C++ 로 만든 프로그램을 라이브러리화 하여 기존 어플리케이션을 확장하는 방법 / SuperCollider UGen, Max/MSP External, Pd External 을 만드는 방법 / Python 을 확장하는 방법



< 강사소개 >

박성민은 대한민국 서울에서 활동하는 전자음악 뮤지션으로, 라이브코딩 기반의 퍼포먼스로 공연 활동을 하고 있다. 테크놀로지를 즐겨 사용하고, 프로그래밍을 활용한 예술 창작 전반에 깊이 관심있지만, 언제나 작품 자체는 팝(POP)적인 감각과 감성을 유지하려 노력하고 있다. 2015년 부터 앰비언트 음악 시리즈 ambient M.O.O.O 의  정규크루로 공연하고 있으며, 불교/전통음악 그룹 사(社) 프로젝트의 멤버로도 활동하고 있다.


< 수강료 >


600,000원 (6회, 3시간씩)



< 수강 인원 >


3~5명



[수강하기]


— C++, AudioVisual, Sungmin Park
© 2017-2020 by WeSA. All rights reserved. / wesa@wesa.kr