'그린 소프트웨어'를 읽고
바야흐로 ESG 경영의 시대이다. 직원 입장에서야 수익도 제대로 못 내는 회사가 뭔 놈의 기부랑 사회 공헌 기사만 쏟아 내는지, 왜 당장 돈도 되지 않는 일에 그렇게 힘을 쏟는 건지 의문이 들 수 있다. 하지만 지속 가능한 신뢰가 핵심인 기업 입장에서는, 이러한 활동이 결국 회사의 가치를 올리는 중요한 노력일 것이다.
IT회사 직원으로서, ESG의 세 가지 요소 중 ‘환경(Environmental)’은 나의 업무와 가장 관련이 없는 부분이라고 생각해 왔다. 아니 어쩌면 인력이나 유형 자산의 이동 없이도 서비스를 제공하는 IT의 특성상, 오히려 환경 보호에 기여하고 있다고 믿어왔던 것일지도 모른다.
그러나 책의 서두에서 기술 업계가 연간 탄소 배출량의 5-10%를 차지하고 있으며, 항공 산업보다 잠재적으로 훨씬 더 큰 영향을 미치고 있다는 문장을 봤을 때 신선한 충격을 받았다. 오래된 이메일을 지우면 탄소 배출을 줄일 수 있다길래 그 정도가 내가 실천할 수 있는 전부일줄 알았다.
이 책은 탄소와 에너지, 그린 소프트웨어의 기본 개념부터 기술 업계 종사자로서 환경에 영향을 끼칠 수 있는 구체적이고 실천 가능한 방법까지 차근차근 안내한다. 물론 비개발자로서 낯선 환경 관련 용어와 개발 용어가 가득한 책의 모든 내용을 완벽히 이해하기는 어려웠다. 그럼에도 환경을 위한 지속 가능한 개발이 곧 제품 경쟁력을 높일 수 있는 방법이며, 이를 위해서는 기술 업계에 속한 모든 담당자가 함께 노력해야 한다는 책의 메시지에는 깊이 공감할 수 있었다.
내 실무와는 조금 거리가 있어 보이는 데이터센터나 클라우드 운영 같은 부분들을 제외하면, 가장 공감이 되고 실현 가능성이 높다고 느낀 부분은 chapter3. 코드효율성이었다. 프로젝트가 끝날 때마다 코드 리팩토링의 부채에 시달리는 개발자들을 봐와서인지 유난히 남일 같지 않게 다가오는 대목들이 많았다.
특히 흥미로웠던 부분은 [API의 활용]에 대한 시각이었는데, 효율적인 제품 개발을 위해서는 필수적인 API의 사용이 환경적인 부분에서는 문제가 있을 수 있다는 부분이었다. 범용적인 활용을 위해 설계된 API는 필요 이상으로 더 많은 작업을 수행하기 때문에 하드웨어, 네트워크, 전력망에는 더 많은 부하를 생성할 수 있다는 것이다.
또한 [친환경 디자인 패턴의 사용]에 대해 가이드한 부분도 인상적이었다. 데이터를 포함한 제품의 주요 스펙을 기획하는 입장에서, '만약에'를 대비하여 과도하게 밀어 넣은 기능들이나 불필요하게 수집할지도 모르는 데이터에 대해서도 다시 한번 경계해야겠다는 생각이 들었다. 제품을 기획하는 입장에서도 이제는 단순히 보안이나 업무 효율의 관점뿐만 아니라, 전력 소비와 환경 영향까지 보다 폭 넓게 고려해야 하는 시점인 것이다.
일상생활에서도 환경을 생각한다면 어느 정도의 불편함을 감수해야 하듯이, 그린 소프트웨어를 위해 나아가는 길 역시 쉽지 않을 것이다. 기업은 더 많은 자본을 투자해야 하고 개발자들은 지속 가능한 개발을 위해 끊임없이 고민해야 한다. 평생을 시달리는 쓰레기 분리 수거보다, 의미없는 메일 삭제보다 개발자의 코드 한줄이 실질적으로 환경에 더 큰 영향을 미칠지도 모른다. 빡빡한 제품 출시 일정과 쏟아지는 업데이트 스펙에 치여 이러한 요소들이 후순위로 밀리는 순간, 지구는 정말로 되돌릴 수 없는 상황에 가까워질수도 있다.
이 책은 기술 업계에 몸담고 있는 사람이라면 이제는 한번쯤 고민해야 하는 지점을 부담스럽지 않게 환기시켜 준다. 오지 않은 미래에 대해 너무 겁을 주거나, 실천이 어려운 거창한 처방전을 내리지도 않는다. 소프트웨어를 기획하고 개발하는 사람이라면 기술을 바라보는 관점을 넓히는데 도움을 줄 수 있는 책이니, 가벼운 마음으로 읽어보기를 추천하는 바이다.