IT 뉴스

좋은 개발 코드의 8가지 특징 : 핵심은 품질

예쁜꽃이피었으면 2015. 7. 28. 08:53

http://www.itworld.co.kr/slideshow/94601?slide=1#stage_slide


2015.07.17

좋은 개발 코드의 8가지 특징 : 핵심은 품질

Phil Johnson | ITworld.com
컴퓨터를 넘어 자동차와 냉장고 등 온갖 일상용품에 소프트웨어가 탑재되면서 '개발 코드'라는 이름 역시 일상의 곳곳에서 쉽게 들을 수 있게 됐다. 그 활용 범위만큼이나 코드들의 특성과 성능 역시 매우 천차만별이다. 소프트웨어 프로그램들은 동일한 목적을 수행하더라도 작성된 코드에 따라 성능 격차를 보인다.

그렇다면 '좋은' 소프트웨어 코드란 어떤 기준으로 정의할 수 있을까? 각자의 선호도와 가치관에 따라 답은 다르겠지만, 그중에서도 공통으로 손꼽히는 의견이 있다. “좋은 코드의 기준이란 무엇인가?”라는 질문을 두고 여러 온라인 포럼에서 오간 의견을 추려봤다. 좋은 코드의 8가지 특징에 대해 살펴보자. editor@itworld.co.kr

Image courtesy Lydia

잘 작동한다
소프트웨어의 목적은 주어진 명령을 수행하는 데 있다. 적잖은 개발자들이 이 사실을 간과하는데, , 그런데도 여전히 좋은 코드를 가늠하는 가장 중요한 기준은 바로 프로그램의 동작 여부다. 설계 당시 구상된 요구를 충족하지 못하는 코드는 어떤 경우에도 좋은 코드라 말하기 어렵다. 

읽기 쉽다
좋은 코드의 가장 중요한 기준으로 많은 개발자들이 동의하는 또 하나의 특징은 바로 가독성이다. 누구나 큰 시간과 노력을 들이지 않고도 쉽게 이해할 수 있는 코드는 어느 곳에서나 환영받는다. 이해하기 쉬운 함수 및 변수 작명 센스, 명확한 제어 흐름을 지녔으며, 그리고 주석을 영리하게 활용한 코드는 다른 개발자가 이 코드를 해석하는 시간을 줄여주고, 향후의 유지보수 및 확장, 재사용을 쉽게 해준다.
Image courtesy Monrovia Public Library


테스트 가능하다
테스트 가능 여부는 많은 소프트웨어 개발자들이 코드의 품질을 평가하는 데 중요하게 고려하는 요소다. 보다 전문적으로 말하자면, 좋은 코드는 프로그램학적으로 테스트할 수 있어야 한다. 자동화된 (유닛) 테스트는 코드의 각 컴포넌트가 설계 당시 의도된 역할을 올바르게 수행하는지를 확인할 수 있도록 하는 과정이라는 점에서 매우 중요하다.
Image courtesy David Bleasdale


관리가 쉽다.
아무리 잘 작성된 코드라도 버그의 가능성은 언제나 존재하며, 따라서 관리 가능성은 코드의 품질을 판단하는 데 중요한 요인이 된다. 관리 용이성이라는 특성은 코드의 가독성과 조정 가능성, 명료성 등의 선행 요인에 의해 좌우된다. 코드의 교정은 초기 개발자뿐 아니라 2차, 3차 사용자들이 관여하기도 하는 과정이라는 점 역시 관리 가능성이 강조되는 이유다.
Image courtesy Morgan


외관이 보기 좋다
소스 코드의 외관은 사실 실제 성능과는 관련성이 없는 요소지만, 개발자들에겐 꽤 중요한 고려 요인이다. 자간, 행간, 대문자 원칙 등은 소프트웨어 프로그램을 보다 편리하게(그리고 더욱 쾌적하게) 읽고, 이해할 수 있게 해준다. 많은 개발자들이 ‘보기 좋은 코드’를 고품질의 코드로 평가하고 있었다.
Image courtesy REUTERS/Mike Segar



변경이 쉽다
기존 코드 조각의 기능성에 변경이나 확장, 재사용이 필요한 상황이 자주 발생한다. 좋은 코드라면 최소한의 노력만으로 변경이 가능 해야 한다. 여기에서 설명하는 간결함이란, 단순히 변경이 ‘쉽다’는 의미를 넘어 그 과정에서 예기치 않은 부작용이 발생할 여지가 없어야 한다는 의미를 동시에 포함한다.
Image courtesy Matt Brown


간결하다
소스 코드 조각은 매우 복잡한 최종 결과물을 구축하는 기반이 되는 요소이므로, 그 자체에서는 간결함이 상당히 강조된다. 유능한 코드 작성자들은 이 점을 항상 염두하고, 중첩 반복문(nested loop)나 대형 조조건문(if/else statement)을 최대한 배제하며 방식과 기능을 비롯한 코드 블록들을 간결하고 밀도 있게 유지한다.
Image courtesy Hey Paul Studios

효율적이다
일부 개발자들은 빠르고 리소스를 적게 투입하게 하는 코드를 최고의 코드로 꼽는다. 과학 연구 등의 계산 집중적 작업을 수행하는 소프트웨어에서는 시간 효율성이 특히 강조된다. 실행의 신속성을 보장하기 위해선 때론 코드 가독성을 희생해야 하는 경우도 있지만, 맞교환이 충분히 필요한 분야 역시 많다.
Image courtesy REUTERS/Stefano Rellandin

반응형