Offcanvas

개발자 / 경력관리 / 데브옵스 / 로봇|자동화 / 애플리케이션 / 인문학|교양 / 자기계발

'혁신의 시작은 불평불만에서' 게으른 프로그래머의 힘

2016.10.04 Peter Wayner  |  InfoWorld


어떤 사람들은 사람들이 에베레스트산을 오르는 것과 같은 이유로 커스텀 코드를 좋아한다. 그들은 얼마의 비용이 발생하든 스스로 하는 것을 좋아한다. 스마트한 프로그래머는 워드프레스나 드루팔(Drupal) 같은 좋은 오픈소스 프레임워크를 다운로드하고 거인의 어깨에 편승한다. 새로운 코드를 작성하는 경우에도 몇 줄이 되지 않는다.

자신만의 코드를 작성하느라 땀을 흐리는 것이 큰 실수인 경우가 많다. 그리고 프레임워크의 오픈소스 코드는 수천, 최소 수백 명의 사람들이 시험해 본 것이다. 항상 이상적이지는 않지만 100미터 달리기를 99미터 선에서 시작하는 것과 같다. 또한 코드를 시험하고 버그 보고서 또는 수정사항을 업로드하면 다른 모든 사람이 설치할 때 도움을 받는다.


자동화 : 역사상 최고
일부 C 성애자들은 여전히 자신만의 메모리를 맬록(malloc)으로 작성했다가 완성되었다고 생각할 때 풀어준다. 이들의 관점에서 참조 계수와 가비지 컬렉션은 약골들을 위한 것이다. 물론 존 헨리(John Henry)처럼 여전히 곡괭이를 사용하는 광부들이 있을 수 있다.

프로그래밍 언어가 발달해서 좋은 점은 자동화이며, 툴은 그 어느 때보다도 발전했다. 메모리 관리, 형식 검사, 병렬 처리는 자동 툴로 재창조되어 프로그래머들이 스스로 처리하던 모든 지저분한 잡일을 대체한다.

게으른 프로그래머는 이런 툴을 거부하지 않는다. 자동화 툴은 모든 결점에도 불구하고 여전히 평균적인 인간보다는 낫다는 사실을 알고 있기 때문이다. 물론 매우 똑똑한 해커는 추가적인 시간을 들이고 미치도록 빠른 예술품을 만들 수 있지만 시스템의 가장 중요한 부분의 내부 루프에만 해당하는 이야기이다. 나머지는 일반적인 코드를 대량으로 찍어내고 자동화된 툴이 최악의 실수를 막아주도록 하는 것이 낫다.

데브옵스(DevOps) : 의인화된 게으름
어떤 사람들은 코드를 최신 상태로 유지하고 서버를 구동하라는 사용 지침을 작성하는 스크립트 작성자를 비웃는다. 파일의 압축을 해제하여 디렉터리에 복사하는 것이 뭐가 그리 어려울까?

물론 대부분의 관리 작업은 그리 어렵지 않으며, 대부분의 보편적인 유닉스 명령은 두 글자로 이루어져 있지만 요점을 놓칠 때가 있다. 느긋함을 유지하고 배치 및 유지보수를 자동화하는 것의 목적은 빠르게 그리고 무엇보다도 일관되게 처리하도록 하는 것이다. 야간 교대조도 아침 8시 팀과 동일하게 작업을 처리하며 커피를 마셨는지 여부는 상관이 없다.

자동화는 엄격함과 안정성을 제공한다. 물론 데브옵스팀은 crontab을 실행시킬 때 버튼조차 누르지 않는 모습으로 뚱뚱하고 게을러 보이지만, 모든 것이 더욱 매끄럽게 진행된다. 인간이 루프에서 벗어날 때만큼 실수가 많을 때가 없다.

코드 재사용
바보나 처음부터 시작한다. 사실 오늘 필자는 여름에 작성한 코드 중 다섯 줄을 변경하고 다시 실행시켰다. 오 예. 다시 동작할 기회를 기다리면서 코드 저장소에서 기다리고 있었다.

스마트한 개발자는 가능한 자주 코드를 재사용한다. 이것이 오픈소스 움직임의 주된 목표 중 하나였다. 자유가 아니라 느긋함이었다. 우리가 우리의 코드를 재사용하면 엄청난 작업 시간을 절약할 수 있다.

유연한 코드
필자는 프로그래밍을 시작하기 전에 낮잠 자는 것을 좋아한다. 완전히 꿈나라에 빠지는 것은 아니지만 잠깐의 외도로 코드의 모든 기능을 상상할 시간을 확보한다. 필자가 자는 것처럼 보이지만 코드를 가능한 유연하게 만드는 방법을 계획하고 있는 것이다.

이런 느긋함은 언제나 도움이 된다. 일반적으로 좋은 프로그래머는 미래에 파라미터 또는 세부사항을 변경할 필요가 있을 때를 대비하며 자신의 코드에 유연함을 적용하려 노력한다. 회의론자들은 유연함을 추가하면 코드가 더 길어질 수 있다고 불평한다. 그들은 종종 근시안적인 지름길을 택한다. 더 많은 파라미터를 추가하고 절차를 분리하여 유연성을 추가한다고 해서 그렇게 많은 시간이 소요되는 것은 아니다. 그렇다. 라인이 추가되고 파일 크기가 커지지만 누군가 코드를 변경하고 싶을 때 이런 추가적인 키 클릭은 언제나 도움이 된다.

핵심은 코드와 아키텍처를 충분히 잘 이해하여 유연성을 추가해야 할 때를 아는 것이다. 이를 본능적으로 알 수 있게 되면 느긋하면서도 효율적일 수 있는 방법을 얻게 된다. 그리고 일반적으로 낮잠이 도움이 된다.

문서화는 문제를 줄인다
글쓰기는 어려운 일이며 작가는 자신의 능력을 절대로 충분히 인정하지 않는다는 사실은 잘 알려져 있지만, 프로그래머는 느긋함에 의해서 글을 쓴다. 프로그래머는 코드에 관한 문서를 작성하여 다른 사람들이 성가시지 않도록 한다. 바보의 바다에서 질문을 재치 있게 받아 넘기고 싶은 생각이 없기 때문에 스위치의 기능에 관해 설명하는 페이지를 작성한다. 물론 명확하고 정확하게 쓰려면 좀 더 많은 작업이 필요하지만 장기적으로 사람들이 자신을 귀찮게 하지 않도록 예방할 수 있다.

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.