brunch

프롤로그 I : 예술과 프로그램의 공통점

예술과 프로그램의 공통점

by jeromeNa

예술과 프로그래밍은 핵심적인 원리와 접근 방식에서 많은 공통점을 가지고 있다. 특히, 미술사를 참고하면 이 두 분야의 공통된 특징을 더 분명히 이해할 수 있다.


창의성과 문제 해결


미술사에서 창의성은 중요한 원동력이다. 르네상스 시기의 예술가들은 원근법을 개발해 2D 캔버스에서 3D 효과를 구현하는 문제를 해결했다. 레오나르도 다 빈치나 미켈란젤로 같은 예술가는 과학과 수학을 활용해 새로운 방법으로 세상을 표현하려 했다. 또한 인상주의 화가들은 빛의 표현이라는 문제에 직면했을 때, 점묘법이라는 기법을 개발했다. 조르주 쇠라(Georges Seurat)와 같은 화가들은 작은 점들을 이용해 빛의 효과를 표현했다.


[그림 1] 조르주 쇠라, <그랑자트 섬의 일요일 오후 Un dimanche à la Grande Jatte >, 1886, oil on canvas


프로그래밍 역시 창의적으로 문제를 해결한다. 복잡한 요구사항을 분석하고, 효율적인 알고리즘과 데이터 구조를 설계하여 해결책을 제공한다. 예를 들어, 컴퓨터 그래픽에서 픽셀 기반의 2D 이미지를 3D로 렌더링 하는 알고리즘은 원근법과 비슷한 문제를 해결한다.


추상화와 모듈화


20세기 초 피트 몬드리안(Piet Mondrian)은 복잡한 현실을 기본 도형과 색상으로 추상화했다. 그의 작품은 현실의 본질을 단순한 요소들로 분해한 것이다.


[그림 2] 피트 몬드리안, <빨강, 파랑과 노랑의 구성 II, Composition II in Red, Blue, and Yellow>, 1930, oil on canvas


프로그래밍에서도 복잡한 로직을 캡슐화(Encapsulation)하고, 복잡한 시스템을 작은 모듈(Module)들로 나누고, 추상화하여 관리하기 쉽게 만든다.


구조와 규칙의 중요성


바우하우스(Bauhaus) 운동은 “형식은 기능을 따른다(Form follows function)”는 철학을 강조하며, 예술 작품의 구성과 기능적 아름다움을 중시했다. 이 운동은 조형 예술사에서 간결한 디자인과 구조적 통일성을 지향했다.


코드는 규칙과 구조 위에 작성된다. 좋은 소프트웨어 디자인은 모듈성과 재사용성을 강조하며, 깔끔한 코드와 구조는 유지보수와 확장성을 높인다. 예술에서의 조형 원리와 프로그래밍에서의 디자인 패턴은 동일한 목적, 즉 이해하기 쉽고 효과적인 결과물을 만드는 데 초점을 둔다.


도구와 기술의 발전


미술사는 기술 발전과 함께 진화했다. 유화는 중세 후기에 등장하며 예술 표현의 범위를 확장했고, 사진술은 인상주의와 같은 새로운 미술 운동을 자극했다. 특히, 19세기 말, 튜브에 든 물감의 발명으로 인상주의 화가들은 실외에서 직접 그림을 그릴 수 있게 되었고, 이는 빛의 표현과 색체 사용에 혁명을 가져왔다.


프로그래밍에서도 새로운 도구와 기술은 작업의 본질을 바꾼다. 초기 기계어와 어셈블리에서 현대의 고급 언어로 발전하면서 더 복잡한 애플리케이션을 개발할 수 있게 되었다. 프레임워크나 라이브러리의 발전은 프로그래머가 더 효율적으로 작업할 수 있도록 돕는다.


협업과 융합


르네상스 시대에는 건축가, 화가, 조각가, 수학자, 과학자가 함께 협업하며 새로운 표현 방식을 만들어냈다. 브루넬레스키는 건축과 기하학을 결합해 플로랜스 대성당의 돔을 설계했다.


소프트웨어 개발에서는 프런트엔드, 백엔드, 디자이너, 데이터 과학자 등이 협업하며 하나의 제품을 만든다. 특히, 애자일(Agile) 방식의 개발은 다양한 팀의 협력을 기반으로 성공을 이끈다.


감정과 논리의 조합


고전주의(Classicism)와 낭만주의(Romanticism)는 각각 논리적 균형과 감정적 표현을 강조했다. 고전주의는 조화와 비례를, 낭만주의는 창작자의 개인적 감정을 강조했지만, 두 흐름 모두 깊은 감동을 주는 예술 작품을 창조했다.


프로그래밍에서도 감정과 논리가 조화된다. 코드 자체는 논리적이지만, 사용자 경험(UX) 설계는 감정적 공감을 필요로 한다. 감각적인 다지인과 직관적인 인터페이스는 사용자에게 더 나은 경험을 제공한다.


표현과 소통의 매개체


예술은 감정, 사상, 문학적 가치를 표현하는 매개체였다. 피카소의 ‘게르니카’는 전쟁의 참혹함을 강렬하게 전달하며 관객과 소통한다.


[그림 3] 파블로 피카소, <게르니카>, 1937, oil on canvas


소프트웨어도 표현과 소통의 도구이다. SNS 애플리케이션은 전 세계 사람들을 연결하고 소통을 가능하게 한다. 프로그래밍 언어 자체도 인간과 기계 사이의 소통 도구라 할 수 있다.




미술사는 예술이 어떻게 도구와 기술, 창의성을 활용해 문제를 해결하고 사람들과 소통했는지 보여준다. 프로그래밍은 현대의 도구와 논리를 통해 동일한 과정을 밟고 있으며, 두 분야는 창조적 사고, 구조적 이해, 기술적 발전을 통해 삶을 풍요롭게 한다는 공통된 목표를 가지고 있다.




keyword