brunch

You can make anything
by writing

C.S.Lewis

by 이남주 NJ Namju Lee Sep 13. 2019

컴퓨테이셔널 디자인

Computational Design, Creative Coding 01


"컴퓨테이셔널 디자인(Computational Design)"이라는 단어를 들어 보셨나요?


만약 여러분들이 이 단어를 들어보신 경험이 있으시면, 전문적인 일을 하시는 분일 가능성이 높겠네요. 컴퓨테이셔널 디자인은 사실, 일반적으로 많이 쓰는 단어는 아니라고 생각하는데, 몇 년 전까지는요!


4차 산업과 지식(Knowledge)기술(Technology)의 발전으로, 컴퓨테이셔널 디자인이라는 말을 많이 사용하죠, 물론 아직까지는 전문적인 영역이지만. 곧 우리의 교양적 측면이나, 지식적 측면으로, 컴퓨테이셔널 디자인이 무엇인지 이야기하려고 해요.


컴퓨테이션 디자인(Computational Design)이라는 용어는, 어떤 의미에서는 알고리즘믹 디자인(Algorithm Design), 파라메트릭 디자인(Parmmetric Design), 제너레이티브 디자인(Generative Design)으로도 불리어질 수 있죠. (다른 키워드들은 차차 다루기로 하고 문서가 완성이 되면 링크를 달도록 할게요!)


강조점의 차이긴 하지만, 결국 하는 일은 뭐냐면, 컴퓨팅 파워를 빌려서 인간이 한 땀 한 땀 해야 하는 작업들을 컴퓨터에게 시킨다. 정도로 이해하시면 무리가 없을 거예요. 예를 들면 하나의 정해진 답이 있는 작업들, 가령 자동화(Automation)를 극대화시킨다 던가, 최적화(Optimization)를 한다던가, 특정 목표를 두고 가깝게 근접하는 계산을 한다던가 기타 등등의 작업들을 볼 수 있어요. 반대로, 어떤 답이 모르는 문제들이 있을 때, 그 다양한 가능성들을 보여주는 역할을 할 수 있죠. 디자인 스페이스(Design Space)를 만들어주는 것이 그 예일 수 있어요.  그 기저에 컴퓨테이셔널 디자인이 있다고 말할 수 있습니다.


Computation? / 컴퓨테이션?

단어적 의미로 유추를 해보면 Computation + Design 이니까, Compute 즉 무언가를 계산하는 거죠. 쉽게 생각하면, 계산을 통해서 디자인을 해 나간다고 생각할 수 있겠죠. 결국 수체계와 컴퓨팅 힘을 활용해서 디자인 활동을 한다는 이야기죠. 즉, 계산으로도 디자인을 가능하다는 거죠? 놀랍죠?


Design? / 디자인?


디자인이 무얼까요? 이렇게 볼 수 있죠. 무언가를 형태적 언어로 만드는 것이죠, 혹은 시각적 언어로 그리는 것이죠. 쉽게 생각하면, 형태와 색을 만드는 행위죠. 색(Color)의 경우는 빨간색 파란색 노란색 등이 있을 것이고, 형태 하면(Shape) 점, 선, 면, 사각형 원 등등이 있겠죠.


Color / 색


색은, 일반적으로 컴퓨터에서 RGB 혹은 RGBA의 숫자로 표현될 수 있어요. R(Red)/빨강, G(Green)/녹색, B(Blue)/파랑, A(Alpha)/투명도의 정보, 즉 데이터를 가지고 있죠. 자세히 말해 0 -255 혹은 0.0 - 1.0의 정규화(Normalized) 값으로 주로 표현하죠. 가령, 여러분들이 많이 사용하시는 Blending Mode의 스크린, 오버랩 등등의 기능도 사실 컬러값의 계산이에요.



Shape / 형태

형태는, 당연히 점부터 시작할 수 있겠죠, 점(Point or Vertex)이 있고, 점들을 연결하면 선(Line, Polyline, or Curve)이 나오고, 이 선을 연결하면 형태(Surface / Solid Objects)들이 나오겠죠.

컴퓨테이셔널 디자인은 앞의 색과 형태, 즉 이 두 데이터들을 조정하는 거예요. 조정함으로써 디자인 행위를 해 나가는 것이죠. 여기서 중요한 포인트는, 계산한다고 했는데, 사실 컴퓨터는 두 가지 상황만 계산해요. 가령 참 / 거짓인 거죠. 굉장히 로우 레벨(low-level) 설명이긴 한데. 이해해 두면 나중에 편해요.


참이냐 거짓이냐 이 두 가지 형태를 가지고서, 덧셈, 뺄셈, 곱셈, 나눗셈의 사칙 연산도부터 시작해서 정말 복잡한, 요즘은, 자동차도 운전하고 로켓 쏘아 올린 죠. 그런 계산들은 정말 이 단순한 계산 형태를 응용해서 다 만들어 주는 거거든요. 즉 알고리즘을 만들어 주는 것이죠.


컴퓨테이셔널 디자인은 색과 면을 어떠한 알고리즘, 즉 여기서는 디자인 방법론이 되겠죠. 이런 것들을 컴퓨터가 계산할 수 있도록 하나의 지침서(Instruction)를 만드는 것이 디자인 행위다라고 볼 수 있죠.

Break down a problem into small parts


이럴 때, 디자인(Design) 절차(Procedure), 혹은 디자인이 발달(devleopment)되는 과정들을 분해(Decomposition) 하는 것이죠. 다 나누는 것이에요! 컴퓨터 공학에서 가장 기초적인 사고는, 영어로 전달해 드리면, Break down a problem into small parts. 즉 하나의 문제, 디자인도 하나의 문제죠, 이 문제를 어떻게 작은 파트들로 나눌 수 있을까? 의미 있는 덩어리로 나눌까 대한 이야기죠. 이 개개별의 작업들을 컴퓨터가 알아들을 수 있는 지침서(Instruction)로 만드는 것이죠.

즉, 코딩을 한다던가, 프로그래밍을 짠다던가 하는 거죠. 즉 프로그램의 명령체계를 순서대로 어떤 루틴(Routine)을 만드는 것이죠!


좀 더 넓은 의미로는, 디자이너들이 포토샵 혹은 스케치업 등의 프로그램을 사용해서, 이 버튼을 클릭하고 저 버튼을 클릭해서 뭔가를 하는 것도 사실 같은 행위죠. 가령 이 지점을 선택한다 저지점을 선택한다 원을 그린다 이것도 하나의 디자인 지침인 거예요. 즉 원을 그리는 행위도, (1) 첫 점을 선택한다. (2) 두 번째 점을 선택한다. (3) 두 점을 연결하는 원을 그린다. 이것도 원을 그리는 행위를 3가지 의미 있는 액션으로 나눈 것 이거든요.


Computational Thinking


따라서, 컴퓨테이셔널 디자이너에게 가장 중요한 것은, 디자인 문제를 작은 의미 있는 단위로 나누고, 어떻게 하면 컴퓨터에게 이 일들을 시킬 수 있을 것인가를 고민하는 것이죠. 다시 말해, 컴퓨테이셔널 팅킹을 훈련해야 한다는 것이에요. 작은 문제들을 풀기 위한, 단순한 논리들이 모이면 그것이 알고리즘(Algorithm)이 되는 것이고, 디자인 전략(Strategy) 혹은 방법론(Methodology)으로 볼 수 도 있다는 것이죠.


요약하면


컴퓨테이셔널 디자인이면, 결국 계산을 한다!

Q 무엇을 위해? - 디자인을 위해!

Q 계산할 때, 우리가 하는 계산은 무엇인가? - 색(RGB)과 형태(점, 선, 면) 디자인 데이터!

Q 디자인은 무엇인가? - 조작하고자 하는 디자인 순서 지침서를 만들어 주는 것이다! 프로세스의 코드화!


이러한 지침서들을 컴퓨터에게 시키는 것이죠. 컴퓨터는 전기만 들어오면 초당 몇 억 번 이상의 계산을 수행할 수 있어요. 비해서, 인간은 1초에 빠르면 2-3개의 액션을 할 수 있을 뿐이죠.


Explicit & Implicit


디자이너들은 대게, 직관적으로 경험적으로 통찰적으로, 무언가를 빠르게 복합적으로 머릿속으로 생각을 통해 디자인을 해 나가는데, 여기서 잠깐!, 그 머릿속에서 발현되는 복합 미묘한 디자인 행위와 결정들을 좀 더 명백하게(Explicit)하게 디자인해 나간다라는 것이 컴퓨테이셔널 디자인의 매력일 수 있다고 생각해요.


쉬운 언어로는,  4차 산업의 컴퓨팅 파워와 데이터를 이용해서, 디자인 행위를, 좀 더 손쉽게, 다양하게, 빠르게, 지속 가능하게, 가능성(potential)을 끌어내는 행위를 컴퓨테이셔널 디자인이라고 볼 수 있겠죠.


즉, 4차 산업 혁명의 핵심인 데이터, 다시 말해 디자인 재료로서의 데이터와 그것을 가공하기 위한 도구, 즉 코딩의 이해를 통해, 디자인 프로세스의 코드화가 컴퓨테이셔널 디자인의 핵심이다라고 볼 수 있어요.


이 밖에도 많은 생각거리들이 있는데요, 다음 글들을 통해서 같이 공부하고 고민할 수 있는 내용들을 공유해 드리겠습니다. 


읽으면서 시작하는 컴퓨테이셔널 디자인


감사합니다.


컴퓨테이셔널 디자인?

비디오버전

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari