"As Code"

Mitchell Hashimoto

As Code

저는 개인적으로 “X as Code”에서 접미사 “as code”를 “원칙이나 규칙의 체계”라는 의미로 정의해 왔습니다1. 이는 “as code”를 “프로그래밍으로서”로 해석하는 일반적인 이해와는 대비됩니다.

대표적인 “X as Code” 도구인 Terraform을 만든 이력 때문에 저는 이러한 오해의 대상이 되는 경우가 많습니다2. 그래서 이 짧은 글을 통해 제 의도를 분명히 하고자 합니다.

“X as Code”에 담긴 제 의도는3 언제나 사람들의 머릿속에 있는 지식을 더 명문화된 시스템으로 옮기는 것이었습니다. 일단 명문화되면 지식과 프로세스를 공유하고, 버전을 관리하며, 반복적으로 개선해 나갈 수 있습니다.

프로그래밍과의 관련성은 명문화된 지식이 대체로 컴퓨터가 읽을 수 있는 형태가 되고, 그에 따른 모든 이점(예: 자동화, 검증 등)을 함께 누릴 수 있다는 점에 있습니다. 하지만 그렇다고 해서 현대 프로그래밍의 모든 요구사항을 “as code” 시스템에 적용해야 한다고 생각하지는 않습니다.

역사적인 맥락을 하나 더 덧붙이자면, 저는 10년도 더 전에(Terraform 이전입니다!) Tao of HashiCorp을 공동 집필했으며, 그 문서의 두 “codification(코드화)” 섹션에는 이러한 사고방식이 지금도 그대로 남아 있고 처음 작성된 이후로 거의 바뀌지 않았습니다. 이는 제가 말하는 “as code”의 의도를 이해하는 데 추가적인 맥락을 제공합니다.

이 글을 “프로그래밍으로서”라는 이상에 대한 비판이나, “as code”가 완벽하다는 주장, 혹은 “as code”를 언제나 이렇게 해석해야 한다는 주장으로 받아들이지 말아 주시기 바랍니다4. 어느 것 하나 사실이 아닙니다. 저는 단지 역사적으로 이 용어를 어떤 의도로 사용해 왔는지를 분명히 하고 싶을 뿐입니다.

각주

  1. https://www.merriam-webster.com/dictionary/code

  2. 저는 몇 년 전부터 Terraform 작업을 하지 않고 있으며, 2023년에 HashiCorp을 떠났습니다. 또한 Terraform을 시작한 것에 대해서만 기여를 인정합니다(혼자 한 일은 아닙니다). 지금은 여러 해 동안 다른 분들이 유지보수해 오고 있습니다.

  3. 저는 “X as Code”나 “Infrastructure as Code”라는 용어를 만든 사람이 아닙니다. 누가 만들었는지도 모르지만, 이 용어들은 Terraform이나 제 커리어보다 훨씬 이전부터 존재했습니다. 원치 않으실 수도 있지만 사업에 대한 조언을 하나 드리자면, 새로운 시장 카테고리를 만들지 말고 기존 카테고리에 진입해 시장을 교육하는 비용은 경쟁사가 부담하게 하십시오.

  4. 결국 사물의 정의는 사회적 과정입니다. 무리가 가는 곳으로 우리 모두 가게 마련입니다.

원문은 Mitchell Hashimoto님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.