책 소개
크리에이티브 코딩을 위한 최고의 선택
이 책은 인터랙션 개발자, 미디어 디자이너, 미디어 아티스트가 활용하는 오픈소스 기반 크리에이티브 코딩 프레임워크인 openFrameworks에 대해 다룬다. openFrameworks의 기반 구조부터 차근히 다루고 기반 언어인 C++에 관한 핵심 개념도 프로젝트에 활용 가능하도록 소개하고 있다.
이벤트 기반 프로그래밍 방식을 차근히 다루어 인터랙티브한 프로그래밍을 개발할 수 있도록 도움을 주는 한편, 2차원 그래픽, 3차원 그래픽과 미디어를 다루는 라이브러리를 다루고 각각 예제를 만들어보면서 openFrameworks의 가능성을 엿볼 수 있도록 하고 있다. 피지컬 컴퓨팅과 연동할 수 있도록 아두이노 보드 기반 예제와 컴퓨터 이외의 센서인 카메라, 키넥트 센서, 립모션 장치를 이용한 인터랙티브 미디어를 제작해보는 경험을 제공한다.
이 책의 특징
- openFrameworks를 처음 시작하는 사람들을 위해 기본 구조와 동작 방식을 다루고 기반 언어인 C++을 간략히 소개하여 진입 장벽을 낮췄다.
- openFrameworks의 강점인 다양한 미디어(비디오, 오디오, 2D 그래픽, 3D 그래픽)를 다루는 방식을 활용하는 예제를 구성했다.
- 오픈소스 기반의 특징인 다양한 디바이스를 연결하기 위한 통신 프로토콜을 소개하고 아두이노 보드와 키넥트, 립모션 컨트롤러에 적용하는 방법을 소개했다.
이 책이 필요한 독자
- 인터랙티브 미디어 창작에 도전하는 개발자, 디자이너, 예술가
- 크리에이티브 코딩이나 C++언어 기반 프레임워크에 관심 있는 분
- 아이디어를 소프트웨어로 만들어 보는 프로토타이핑을 시작하려는 분
독자대상
초중급
소스코드 다운로드
https://github.com/bjpublic/openframeworks/
이 책은 openFrameworks의 특성을 기초적인 내용부터 이해하고 대표적인 기능을 중심으로 학습하면서 간단하게나마 예제를 통해 가능성을 가늠해 볼 수 있도록 작성하였습니다. 기반 언어인 C++의 객체지향적 특성과 포인터 사용법, 메모리 관리기법과 같은 까다로운 내용을 openFrameworks에서 적용할 수 있도록 소개하였습니다.
또한 애플리케이션을 컴퓨터에서 단독으로 실행하는 유형 이외의 아두이노 같은 디바이스나 키넥트 같은 센서와 연동하는 방법, 네트워크 프로토콜을 이용해 다수의 애플리케이션 간에 데이터를 송수신하는 방법도 다루었습니다. 이 책을 통해 조금이나마 openFrameworks에 대한 이해도를 높여 자신이 만들고 싶은 것을 쉽고 빠르게 구현해 보며 점차 발전시켜 가길 바랍니다.
작가 소개
지은이 : 서경진
서강대 전자공학과에서 석사까지 마친 뒤 영상대학원에서 컴퓨터비전/HCI 분야로 박사학위를 마쳤다. 대학원 생활 중 미디어 아트와 HCI 분야에 대해 눈을 뜨면서 센싱과 인터랙션을 주제로 아티스트, 디자이너들과 협업을 통해 다수의 미디어 작업을 수행하였다. 2012년부터 약 6년간 ㈜NAVER가 설립한 Connect 재단(구. NHN NEXT)에서 HCI와 데이터 시각화 등을 주제로 교육과 연구를 진행한 바 있으며, 2018년 현재 AIRI(인공지능연구원)에서 컴퓨터 그래픽스 기술과 인공지능을 접목한 연구를 진행하고 있다.
인간과 기계, 인간과 컴퓨터 사이의 상호작용과 인터페이스에 대한 애정과 호기심이 충만한 인터랙션 개발자가 되고자 노력하고 있으며, 인터랙티브 미디어를 학술적, 상업적, 예술적인 분야에 접목시키고 컴퓨터를 통해 사람들에게 시각적인 즐거움과 영감을 주는 방법에 대해 연구하고 있다.
목 차
1장 Hello openFrameworks
1. 들어가기
2. openFrameworks 소개
3. openFrameworks 활용 분야
4. openFrameworks 설치하기
5. 기존 프로젝트 컴파일하기
6. 새 프로젝트 생성해서 실행하기
7. 프로젝트 업데이트하기
8. 정리하기
9. 도전해 보기
2장 openFrameworks 기본 구조
1. 들어가기
2. openFrameworks 프로젝트 폴더 구조
3. openFrameworks 전체 폴더 구조 이해하기
4. 예제를 활용한 프로젝트 실습
5. openFrameworks 기본 동작 원리
6. 애플리케이션 클래스 이해하기
7. 애플리케이션 구조 실습: 사각형 애니메이션 프로그램
8. 정리하기
9. 도전해 보기
3장 openFrameworks C++ 이해
1. 들어가기
2. 데이터 타입 & 함수
3. 객체 지향 프로그래밍
4. STL & Modern C++ 활용하기
5. 정리하기
6. 도전해 보기
4장 이벤트 프로그래밍
1. 들어가기
2. 이벤트 처리
3. 키보드 이벤트
4. 키보드 이벤트 실습
5. 마우스 이벤트
6. 마우스 이벤트 실습
7. 이벤트 리스너
8. 이벤트 리스너 프로젝트
9. 정리하기
10. 도전해 보기
5장 2D 그래픽
1. 들어가기
2. 기본 개념: 화면 좌표계
3. 매개변수 기반 드로잉
4. 원을 이용한 패턴 생성 프로젝트
5. 원 도형 그리기 기능 추가하기
6. 여러 개의 원으로 패턴 만들기
7. 사용자 키보드 입력에 반응하는 패턴 만들기
8. 사용자 마우스 입력에 반응하는 패턴 만들기
9. 사각형을 이용한 마우스 반응형 프로젝트 시작하기
10. 여러 종류의 사각형 그리기
11. 색상 정보를 추가해 다양한 색상의 사각형 그리기
12. 클래스로 사각형 정보 및 기능 통합하기
13. 사각형 클래스를 포인터로 동적으로 생성하기
14. 사각형 클래스 배열을 이중 포인터로 만들기
15. 마우스 클릭에 사각형이 추가로 그려지는 기능 추가하기
16. 정리하기
17. 도전해 보기
6장 애니메이션
1. 들어가기
2. 애니메이션 기능을 위한 고려사항
3. 가속도 추가하기
4. 힘 계산하기
5. 집단 애니메이션 구현하기
6. 사용자 인터랙션에 반응하는 애니메이션 구현하기
7. 파티클 시스템
8. 정리하기
9. 도전해 보기
7장 3차원 그래픽스
1. 3차원 그래픽스 파이프 라인
2. 셰이더
3. 기본 3차원 그래픽 프로젝트 해보기
4. 텍스처 맵 확장 예제 만들기
5. 메쉬 사용하기
6. 셰이더 예제
7. 정리하기
8장 미디어(오디오, 비디오, 이미지) 프로그래밍
1. 들어가기
2. 이미지
3. 이미지 처리
4. 비디오 처리
5. 오디오 / 사운드 처리
6. 정리하기
9장 네트워킹 프로토콜
1. 들어가기
2. TCP/UDP 프로토콜
3. TCP 프로젝트
4. UDP 프로젝트
5. OSC 프로토콜
6. OSC 프로젝트
7. 정리하기
10장 피지컬 컴퓨팅
1. 들어가기
2. 아두이노 시작하기
3. 시리얼 통신 기반 아두이노 프로젝트
4. FIRMATA 통신 기반 프로젝트
5. 정리하기
11장 NUI 디바이스 프로그래밍
1. 들어가기
2. 키넥트 센서
3. 키넥트 Addon 세팅
4. 키넥트 프로젝트 시작하기
5. 키넥트 깊이 정보 활용 프로젝트
6. 키넥트 인체 조인트 추적 기능 활용 프로젝트
7. 립모션 센서
8. 립모션 SDK 설치
9. ofxLeapMotion2 addon 세팅
10. 립모션을 활용한 프로젝트
11. 정리하기
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |