Offcanvas

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

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

2016.10.04 Peter Wayner  |  InfoWorld


희박한 주석
물론, 주석 작성의 경우 적을수록 좋다. 그렇다. 자신이 좋아하는 인간 언어에서 몇 단어를 섞어 컴퓨터 언어를 이해하기 쉽도록 해야 한다. 사실 계약서에는 주석이 없는 경우 대금을 지불하지 않는 요건이 포함되어 있는 경우가 많다.

하지만 주석을 느긋하게 작성하려면 직관적인 논리에 기초하여 깔끔하고 단순한 코드를 작성해야 한다. 물론 이상하거나 이해하기 어려운 것을 작성한다면 자신의 천재성을 설명하는 메모를 남긴다. 하지만 정말로 이상하거나 이해하기 어려운 것을 작성해야 할까? 최고의 해결책은 약간의 낮잠 시간을 통해 매우 깔끔한 아키텍처를 고민하는 것이다. 그러면 많은 주석을 작성하거나 업데이트에 시간을 보낼 필요가 없다.

앞서 언급한 상수 방법과 마찬가지로 변수의 이름이 길면 코드에 문서화를 혼합한다. 이 문서화는 선언에 첨부될 뿐인 주석과는 달리 변수가 사용되는 모든 곳에 따라 다닌다.

자동화된 테스트
몇 번의 키 입력으로 놀라운 코드를 작성할 때 누가 이를 두 번 세 번 확인해야 할까? 그리고 새로운 코드가 기존의 코드와 충돌하지 않는지 확인할 수 있는 사람은 누구일까? 코드가 작동하는지 자동으로 확인하기 위한 느긋한 프로그래머의 뜻밖의 선물인 단위 테스트를 실시한다.

어떤 사람들은 썬이 자바를 개발할 때 가장 잘한 일이 수 백 개의 단위 테스트를 구축한 일이라고 말한다. 소프트웨어도 멋지지만 단위 테스트는 소프트웨어가 예측 가능한 방식으로 동작하도록 한다.

자동화된 메타툴(Metatool)
가비지 컬렉션 같은 자동화된 관리 툴뿐만이 아니다. 퍼펫(Puppet)이나 쉐프(Chef) 같은 자동화된 데브옵스 툴만도 아니다. 모든 관리 작업을 하나의 거대한 시스템으로 통합하는 거대한 메타툴이 존재한다. 허드슨 & 젠킨스(Hudson and Jenkins)의 로고는 얼빠진 집사 만화 캐릭터로 더치 커피 한 잔을 즐기는 동안 모든 쓸모 없는 코드 작업을 정리하기 위해 개발된 완벽한 상징이다.

일단 코드를 확인하면 자동화된 메타툴 시스템이 단위 테스트 실행, 코드 백업, 배치 등 다른 모든 작업을 처리한다. 게으른 사람을 위한 궁극의 비서와도 같으며, 이 때문에 이런 소위 말하는 지속 통합 툴이 프로그래머를 위한 궁극의 비서인 것이다.

컴파일러(Compiler)
우리는 많은 기본적인 툴을 처음부터 당연하다는 듯이 느긋한 사람을 위한 발명품으로 여겼다. 컴파일러 개발자가 아니었다면 우리는 여전히 기계 연산 코드와 씨름하면서 그 중간값을 레지스터 2 또는 3에 넣어 두었는지 기억하기 위해 애를 쓰고 있을 것이다. 종이 테이프 또는 자기 테이프 등 대용량 저장소 툴의 발명가가 없었다면, 조명과 스위치가 달린 전면 패널을 통해 이런 값들을 활용하고 있었을 것이다. 영화에서는 멋져 보이지만 사용하기는 쉽지 않다.

컴퓨팅의 거의 모든 목적이 새로운 일련의 툴을 개발하여 우리의 삶을 좀 더 편리하게 하는 것이었다. 거의 모든 툴 또는 앱이 불평 불만에서 시작되었다. 인터넷의 시작부터 스냅챗(Snapchat)까지 오랜 시간이 걸렸지만 그 한 걸음 한 걸음이 느긋함 속에서 누리는 간단한 연습이었다. 몇 년이 지나면 아예 키보드 없이도 프로그래밍이 가능할지 모른다.  editor@itworld.co.kr

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.