로버트 마틴의 대표작인 Clean Code의 부제는 A Handbook of Agile Software Craftsmanship이다. 애자일 소프트웨어 장인정신의 안내서. 그런데 여기서 craftsman이 성차별(sexism)적인 단어라서 이 책을 싫어한다는 글을 본 적이 있다.
나는 원래 장인을 뜻하는 단어 중에서 artisan을 좋아한다. 코딩과 함께 은퇴 후에도 계속해보고 싶은 건 빵을 만드는 일이다. 전통적인 방식을 따라서 멋진 빵을 만드는데 필요한 과학적인 지식과 섬세한 기술, 오랜 경험을 갖춘 숙련된 제빵사를 artisan baker라고 부른다. artisan은 뭐랄까, 무엇인가 만들어내는 일에 대해서 보다 예술적인 추구를 하는 사람을 가리키는 말이 아닐까 싶다. 누군가 사용/식용할 수 있는 무엇인가를 만들어내는 일에 대한 가장 진지한 태도를 가진 사람.
그래서 오래전부터 어떤 개발자라면 artisan 장인이라고 부를 수도 있겠다고 생각을 해왔다. 근데 최근에 김창준 님의 오래된 글을 하나 읽다가 '장인(artisan)으로서의 프로그래머'라는 이야기를 보고 몹시 반가웠다. 내가 생각해 왔던 장인 개발자의 모습에 대한 구체적인 설명이었다.
이 글에서 프로그래머, 프로그램을 제빵사와 빵이라고 바꿔도 자연스럽다. 전통적인 제빵 기법을 이용해서 만드는 사워도우 열풍을 일으킨 샌프란시스코의 타르틴 베이커리 설립자 채드 로버트슨은 끊임없이 세계 여러 곳에서 재배되는 다양한 곡물을 사용해서 빵을 만들어보는 연구를 하고 있다. 새로 발견하고 연구한 빵의 맛과 향, 제작 과정 등을 책을 통해서 공유하기도 한다. 본인을 그렇게 소개하지는 않지만 진정한 artisan baker다. 내가 여러 번의 실패 끝에 처음으로 천연효모를 이용한 사워도우를 만들어 낸 건 그의 책 덕분이기도 하다.
다음에 명함을 만들면 뻔한 타이틀 대신에 아티장 개발자. 혹은 아티장 프로그래머라고 넣고 싶다. 물론 자신을 artisan이라고 부르려면 아직도 더 훈련과 노력이 필요하겠지만.
Artisan은 영어로 발음하면 아티잔일 텐데 원래 불어 발음으로 적으면 아티장이 된다. 비모음의 표기법을 따른 것이다.
아티장 프로그래머. 내 다음 책 제목으로 정했다. 출판사에서는 그런 제목으로는 안 된다고 하겠지만. 부제로라도 넣어달라고 해야지. 아티장 프로그래머를 위한 안내서.
아래는 인터넷에서 찾은 김창준 님의 프로그램, 프로그래밍, 프로그래머라는 글의 일부이다. 2001년에 작성된 글이다.
== 과학자, 장인, 예술가 ==
앞서 설명한 표현 양식과 언어와 사고간의 관계 등을 고려해 볼 때 다양한 패러다임의 언어를 안다는 것(비슷비슷하거나, 자체의 일관된 철학 없이 수많은 기능만 끌어 모은 소위 '강력한' 언어는 별 도움이 안 된다)은 문제 해결자들에게 엄청난 무기가 될 수 있다. 이것이 필자가 말하고자 하는 '장인(artisan)으로서의 프로그래머'다.
자신의 몸의 훈련을 통해 도구를 마치 몸의 연장(延長)처럼 만들되, 하나의 도구에만 종속되지 않으며 재료에 알맞게 다양한 도구를 선택할 수 있어야 한다. 또한 자신이 만드는 프로그램 하나하나에 누가 감시하든 말든 성실하게 최선을 다하고 그것을 내 몸과 같이 아끼고 사랑할 수 있어야 비로소 '장인으로서의 프로그래머'가 될 수 있다.
이와 동시에 프로그래머는 예술가(artist)의 역할도 할 수 있어야 한다. 다익스트라는 "아름다움이 우리가 하는 일이오(Beauty is our business)"라는 명언을 남겼고, 크누쓰 교수의 기념비적 저서 「TAOCP」에도 예술(art)이라는 말이 들어간다 [주: 영어에서 art는 기술이라는 의미로 쓰이기도 하지만 크누쓰는 분명히 미적 가치를 추구하는 예술임을 밝히고 있다]. 과학우선주의 사회에서는 이런 예술이나 기술과 같은 것은 저열한 것으로 치부되고, 그것을 과학화해야 비로소 자랑스러워하는 경향이 강하다.
하지만 아인슈타인의 말대로 "수학의 법칙들이 현실을 언급하는 이상, 그것은 확실하지 않고 그것이 확실한 이상, 그것은 현실을 언급하지 않는다"는 사실을 기억해야 할 것이다. 프로그래밍이라는 것은 자연과학이 될 수 없다. 인간이라는 요소가 개입되기 때문이다. 결국 크누쓰가 말하는 것처럼 우리는 '아름다운 프로그램(beautiful program)을 만드는 심미적 목적을 가질 수밖에 없는 것이다.
물론 과학자로서의 프로그래머를 무시할 수도 없다. 비록 이론이 모두 적중하지 못하더라도 탄탄한 이론적 바탕은 우리의 수많은 시행착오를 절약할 수 있게 해준다. 분석적이고 논리적인 냉철한 사고를 갖고, 예술가로서의 감수성과 심미성을 추구하며, 자신의 몸 공부가 경지에 이른 장인이 바로 이 시대가 원하는 프로그래머일 것이요, 이 프로그래머가 역시 진정한 엔지니어의 요구사항을 충분히 만족시킬 수 있을 것이다.
사진 출처는 https://www.vogue.com/article/rising-star-chad-robertson-of-san-franciscos-tartine-bakery-cafe
'심상' 카테고리의 다른 글
토비의 스프링이 나오기까지 (4) | 2024.01.13 |
---|---|
네트워킹, 우모(Umoh) (1) | 2023.10.11 |
작곡 (2) | 2023.09.30 |
PaxCaelo 관성을 거슬러서 (2) | 2023.09.27 |