
코드로 그림을 그린다고요?
개발자라고 하면 보통 비즈니스 로직을 짜고, API를 만들고, 버그를 잡는 모습을 떠올리잖아요. 그런데 코드로 아름다운 시각적 작품을 만드는 개발자들도 꽤 많아요. 이걸 제너러티브 아트(Generative Art)라고 부르는데요, 알고리즘과 수학적 규칙을 기반으로 컴퓨터가 자동으로(또는 반자동으로) 만들어내는 예술 작품을 말해요. 한 개발자가 수년간 제너러티브 아트를 만들어온 자신의 여정을 상세하게 공유했는데요, 코드와 예술의 교차점에 관심 있는 분들에게 꽤 영감을 줄 만한 이야기예요.
제너러티브 아트가 정확히 뭔가요?
제너러티브 아트를 쉽게 설명하면 이래요. 화가가 붓으로 직접 한 획 한 획 그리는 게 아니라, "어떤 규칙으로 그릴지"를 코드로 정의해놓고 컴퓨터가 그 규칙에 따라 그림을 만들어내는 거예요. 예를 들어 "랜덤한 위치에 원을 그리되, 가까운 원끼리는 선으로 연결해라"같은 규칙을 코드로 짜면, 실행할 때마다 비슷하지만 미묘하게 다른 작품이 나와요. 같은 코드에서 무한한 변형이 가능한 거죠.
여기서 핵심은 랜덤성과 규칙의 균형이에요. 완전히 랜덤하면 그냥 노이즈(잡음)가 되고, 규칙이 너무 강하면 기계적이고 재미없어져요. 좋은 제너러티브 아트는 그 사이 어딘가에서 "의도하지 않았지만 아름다운" 결과물을 만들어내요. 개발자의 관점에서 보면, 시스템의 초기 조건과 규칙을 설계하고 그 안에서 창발(emergence)이 일어나도록 하는 과정이에요.
어떤 기술들이 사용되나요?
제너러티브 아트에 사용되는 기술 스택은 꽤 다양해요. 가장 대중적인 도구는 Processing과 그 JavaScript 버전인 p5.js예요. Processing은 MIT 미디어랩에서 시각 예술가와 디자이너를 위해 만든 프로그래밍 언어이자 환경인데, Java 기반이라 개발자에게 친숙해요. p5.js는 이걸 웹 브라우저에서 실행할 수 있게 한 버전이에요. 몇 줄의 코드로 캔버스에 그래픽을 그릴 수 있어서 진입장벽이 매우 낮아요.
좀 더 깊이 들어가면 셰이더(Shader) 프로그래밍도 많이 쓰여요. 셰이더는 GPU에서 실행되는 프로그램인데, 화면의 각 픽셀이 어떤 색을 가질지를 병렬로 계산하는 거예요. 수학 함수 하나로 수백만 픽셀을 동시에 처리하니까 실시간으로 복잡한 패턴을 만들 수 있어요. GLSL이라는 언어로 작성하는데, 처음에는 어렵지만 한번 감을 잡으면 표현의 폭이 엄청나게 넓어져요.
그 외에도 노이즈 함수(Perlin noise, Simplex noise) 같은 수학적 도구가 핵심적으로 사용돼요. 완전한 랜덤이 아니라 부드럽게 변화하는 랜덤 값을 생성하는 함수인데, 자연스러운 지형, 구름, 유기적인 패턴을 만들 때 필수적이에요. 게임 개발에서 맵 생성에 쓰이는 것과 같은 기술이에요.
단순한 취미를 넘어서
제너러티브 아트가 재미있는 건, 단순한 취미 코딩을 넘어서 여러 실용적인 영역과 연결된다는 점이에요. NFT 열풍 때 가장 주목받았던 프로젝트들 중 상당수가 제너러티브 아트였어요. Art Blocks 같은 플랫폼에서는 아티스트가 코드를 올리면 수집가가 민팅할 때마다 고유한 작품이 생성되는 방식으로, 몇몇 프로젝트는 작품 하나에 수억 원에 거래되기도 했어요.
NFT 시장의 거품은 꺼졌지만, 제너러티브 아트 자체의 가치는 여전해요. 데이터 시각화에서도 제너러티브 아트의 기법들이 활용되고, UI/UX 디자인에서 동적인 배경이나 인터랙티브 요소를 만들 때도 쓰여요. 크리에이티브 코딩 역량은 프론트엔드 개발자에게 특히 차별화된 무기가 될 수 있어요.
또 한 가지 흥미로운 점은, 제너러티브 아트가 프로그래밍 학습에 매우 효과적이라는 거예요. 반복문, 조건문, 함수, 재귀 같은 프로그래밍 기본 개념들이 시각적인 결과로 바로 나타나니까, 추상적인 개념을 직관적으로 이해할 수 있어요. 초보자가 코딩에 흥미를 붙이는 데 이만한 게 없다는 분들도 많아요.
한국 개발자에게 주는 시사점
한국에서도 크리에이티브 코딩 커뮤니티가 조금씩 성장하고 있어요. 서울을 중심으로 크리에이티브 코딩 밋업이 열리기도 하고, Processing이나 p5.js를 활용한 워크숍도 종종 있어요. 시작하고 싶다면 p5.js 웹 에디터(editor.p5js.org)에서 바로 코드를 작성하고 결과를 확인할 수 있어서, 설치나 설정 없이 바로 시작할 수 있어요.
실무적으로도 의미가 있는 게, Three.js나 WebGL을 다루는 프론트엔드 개발자라면 제너러티브 아트 기법을 알면 인터랙티브 웹사이트나 데이터 시각화 프로젝트에서 한층 더 풍부한 표현이 가능해요. 포트폴리오 차별화에도 좋고요. 개발만 하다 지칠 때, 코드로 예술을 만들어보는 건 훌륭한 환기가 되기도 하고요.
정리하자면
제너러티브 아트는 알고리즘과 수학을 도구로 시각적 아름다움을 창조하는 분야예요. 개발자로서 이미 가지고 있는 역량 위에 약간의 수학적 감각과 미적 호기심만 더하면 새로운 세계가 열려요. 코드로 그림을 그려본 적 있으신가요? 아니면, 한번 시작해보고 싶은 마음이 생기시나요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공