Reddit

Making software is an artistic activity

소프트웨어를 만드는 일은 예술적 활동입니다

소프트웨어는 아이디어를 코드라는 매체와 그 제약에 맞춰 구현하는 과정에서 만들어집니다. 글쓴이는 그 과정에 필요한 판단과 취향이 결과물의 질을 좌우한다고 주장하며, Reddit에서는 예술과 공예의 경계, 업무 환경의 제약, AI가 창작감을 바꾸는지를 두고 의견이 갈립니다.

에디터 노트

코드 작성에 판단과 취향이 개입한다는 주장은 설득력 있지만, 그 사실만으로 모든 소프트웨어를 예술이라 부를 수는 없습니다. 글쓴이는 설계 선택이 실제 구현 중에도 이뤄진다는 점을 근거로 예술적 활동이라고 주장합니다. 댓글에서도 업무의 제약 속에 선택이 남는다는 반응과, 정해진 패턴을 조립하는 일은 예술과 다르다는 반론이 맞섭니다. AI를 쓰며 창작감이 줄었다는 경험담은 작업 방식의 변화를 보여주지만 예술의 정의를 판정하지는 않습니다. 논쟁의 초점은 창의성의 존재보다 예술이라는 말이 무엇을 구별해 주는지에 있습니다.

AI 요약

글쓴이는 예술을 의도한 목적에 맞춰 사람의 기술로 사물을 만들거나 바꾸는 일이라고 정의합니다. PRD에 음악의 느낌을 적어 두면 실무자가 음표를 써 주리라는 가상의 Hans Zimmer 인용을 들며, 음악의 작곡은 머릿속 생각을 악보라는 매체로 옮기는 과정 자체라고 설명합니다. 악보는 음악의 규칙과 제약을 따르면서도 의도한 감정을 담아야 합니다. 소프트웨어도 마찬가지로 아이디어를 코드라는 매체에 구현하며, 완성된 결과물이 처음 구상한 생각을 온전히 표현합니다.

글쓴이는 프로그래머가 가능한 설계 공간에서 폭넓은 선택을 내린다는 점을 들어, 기획 단계에서 모든 결정이 끝나지 않고 실제 프로그래밍을 시작한 뒤에도 중요한 판단이 이뤄진다고 봅니다. Fred Brooks가 1975년 저서에서 프로그래머를 시인에 빗대어 순수한 생각에 가까운 재료를 다룬다고 쓴 구절도 인용합니다. 이런 관점에서 좋은 소프트웨어에는 학습과 연습, 경험, 취향이 필요하다고 주장합니다.

예술인가, 공예인가

댓글에서는 창의적인 활동이라는 점에는 동의하면서도 예술이라는 이름을 붙일지에는 의견이 갈립니다. 일부는 목공, 도예, 건축처럼 기능이 있는 작업도 예술이 될 수 있다고 말합니다. 반면 다른 댓글은 소프트웨어가 문제 해결을 목적으로 하며, 기능적 결과물 전체를 예술로 부르면 개념이 지나치게 넓어진다고 반박합니다. 예술과 공예를 구분해야 한다거나, 예술이라는 평가보다 가독성·유지보수성·효율성처럼 구체적인 기준을 쓰자는 의견도 나옵니다.

선택의 폭과 업무 환경

업무에서 이미 정해진 구조와 규칙을 따라야 한다는 점도 논쟁거리입니다. 한 댓글은 회사에서 정해진 패턴에 맞춰 기능을 조립하는 일이 대부분이라 예술적 자유가 적다고 말합니다. 이에 다른 댓글은 코드 스타일이나 도구가 제한하는 것은 표현의 표면일 뿐이며, 설계와 구현 과정의 선택까지 없애지는 않는다고 반박합니다. 표준과 규칙이 유지보수에 필요하다는 의견과, 좋은 이름과 구조를 고르는 판단에도 창작성이 있다는 의견이 맞섭니다.

AI와 창작의 감각

AI를 일상적으로 쓰면서 코드 작성에서 느끼던 창작의 만족감이 줄었다는 댓글도 있습니다. 코드를 직접 쓰기보다 생성 결과를 검토하는 역할로 바뀌었다는 경험담이 이어집니다. 반대로 AI를 쓰더라도 구조와 API를 설계하고 유지보수성을 판단하는 데 창의성이 남아 있다는 반응도 있습니다.

Reddit 반응

  • @u/SmokyMetal060 — 프로그래밍은 창의성을 크게 발휘하는 일이라고 굳게 믿습니다. 제가 아는 최고의 개발자는 기술 지식과 창의성이 만나는 지점에 있습니다. 우아한 해결책을 직관적으로 찾아냅니다.
  • @u/GrandOpener — 프로그래밍은 예술적 활동이 될 수 있다고 표현하는 편이 정확합니다. 이미 세부 사항까지 정해진 기계적인 일을 맡아 처리하는 경우도 있습니다.
    • @u/foobear777 — 일반적으로는 동의합니다. 그래도 제가 해 온 가장 지루한 일들에도 선택할 지점이 꽤 있었습니다. 끔찍한 사후 정리 스크립트에서 이름을 짓는 일뿐일 때도 있습니다.
  • @u/Skeik — 코드가 우아하다고 느낄 수는 있지만 예술이라는 이름이 무엇을 뜻하는지는 사람마다 다릅니다. 효율적이고 최적화됐으며 간결하고 읽기 쉽다는 식으로 더 구체적인 말을 쓰는 편이 낫습니다.
  • @u/pydry — 코드에 예술성을 담는다고 실용성이 사라지는 것은 아닙니다. 대개 가장 아름답게 쓴 코드가 실용성도 가장 높습니다.
  • @u/Deranged40 — 잉크로 글을 쓴다고 모두 예술은 아닙니다. 인쇄소에서 일하며 표준과 코드 스타일을 따르는데, 그런 작업에는 개인의 예술성이 거의 들어가지 않습니다.
    • @u/Blecki — 인쇄소의 비유는 컴파일된 바이너리를 복사하는 일에 가깝습니다. 린터가 보는 코드 형식이 예술이라고 주장하는 것은 아닙니다.
  • @u/i_rate_slop — 예전에는 프로그래밍이 창의적이라고 생각했지만, AI가 제가 창의적이라고 느낀 부분을 맡으면서 지금은 예술적 활동이라고 느끼지 않습니다. AI를 매일 업무에 쓰고 능력도 대단하다고 생각하지만, 만족감은 달라졌습니다.
    • @u/creepy_doll — 영화 연출도 예술인지 생각해 볼 수 있습니다. 연기하는 배우가 로봇이라고 예술이 사라지는 것은 아닙니다. 코딩 자체는 대부분 사라질 수 있어도 구조와 API 설계에는 여전히 창의성이 있습니다.
  • @u/thinkbee — 붓으로 집을 칠하는 일은 기술과 미적 판단이 필요해도 보통 예술이라고 부르지 않습니다. 프로그래밍도 창의성과 장인정신이 들어간다고 해서 모든 결과물이 예술이 되는 것은 아닙니다.
  • @u/josephjnk — 글쓴이의 정의를 따르면 코드는 분명 예술이지만, 그 정의가 널리 받아들여질지는 별개입니다. 설정 파일이나 상용구처럼 예술이라고 보기 어려운 코드도 있고, 기능보다 아름다움이나 유머를 위해 쓴 코드도 있습니다.

원문: kolemannix.com / 번역·요약: Trawling