Offcanvas

개발자 / 애플리케이션

블로그ㅣ개발자에게 듣는 '좋은 소프트웨어'의 조건

2022.03.29 Matt Asay  |  InfoWorld
무엇이 ‘좋은’ 소프트웨어를 만드는가? 개발에 착수하고, 작업을 잘 해내며, 기계가 아니라 사람을 위해 (코드를) 작성한다는 사실을 유념해야 한다. 

트위터는 잘못된 정보와 악의적 주장의 온상일 수 있다. 이는 동시에 마이크로소프트의 스콧 헨슬먼이 소프트웨어 분야에서 수십 년 동안 쌓은 지식을 공유하는 곳이기도 하다. 그가 어떻게 핵심 기술을 능숙하게 다룰 수 있었는지 궁금하지 않은가? 학교를 통해서? 오픈소스 프로젝트를 통해서? 아니면 업무를 통해서? 

이에 헨슬먼은 다음과 같이 말했다. “실제 사이트를 운영하고 확장했다.” 요지는 더 많이 개발할수록 더 많이 배운다는 점이다. 그는 “이것이 팁이다. 튜토리얼이 아니다. 무언가 만들어라. 도메인을 등록하고, 인증서를 받는다. 보안 헤더에서 A를 얻는다. 스토어에 제출하고, SEO를 수정하며, 오픈 그래프(Open Graph) 및 기능을 추가한다. 또 PWA를 만든다. 24시간 연중무휴로 사이트를 운영한다. 이것이 방법이다”라고 설명했다. 

하지만 허니콤의 메건 글리슨은 처음부터 소프트웨어를 너무 많이 구축하지 말라고 언급했다. 왜 그럴까? 
 
ⓒGetty Images

적게 개발해야 더 많이 배운다
헨슬먼은 운영하면서 배우는 것을 옹호한다. 글리슨은 처음부터 새 소프트웨어를 작성하는 것에 반대한다. 물론 글리슨이 소프트웨어의 가치에 이의를 제기한 건 아니다. 그것과는 거리가 멀다. 대신 그는 “새 기능을 추가하는 데만 너무 집중하면 제품, 사용자, 팀이 망가질 것이다”라고 지적했다. 

글리슨은 소프트웨어를 개발하는 대신 소프트웨어 유지관리를 더 많이 해야 한다고 전했다. 그는 “기능만이 제품 가치를 높이는 게 아니다”라면서, “실제로 품질은 새로운 기능에서 거의 나오지 않는다. 보통 무엇인가를 추가하면 한동안 상황이 나빠진다. 그 소프트웨어 품질은 어디에서 오는가? 정원을 가꾸는 일에서 비롯된다”라고 설명했다. 

이어 “문제는 더 많은 (소프트웨어를) 구축하는 쪽으로 향하게 된다는 점이다. 뿐만 아니라 고객의 요구사항이 쌓이면서 더 빠르게 구축하려고 하는 것이다. 소프트웨어 품질을 위한 시간은 거의 없다. 아울러 고객은 반드시 품질을 요구하지 않는다. 오히려 기능을 원한다. JS에서 타입스크립트로 변환하거나 설계 시스템을 완성하는 것만으로는 제품을 사겠다고 말하는 잠재 고객이 없다. 결국 이 모든 기술적 부채가 새로운 기능 개발을 짓누른다. 고객이 속도 저하를 눈치챌 때는 이미 늦었다. 제품 건전성의 다른 측면을 고려하지 않고 기능을 계속해서 만들어낸다면 지속적인 가치를 얻을 수 없게 된다”라고 글리슨은 덧붙였다

타라뱃(Talabat)의 드라간 스테파노비치는 이러한 문제를 해결하기 위해서는 개발자가 회사의 가장 큰 소프트웨어 결함 원인을 정확히 파악해야 한다고 언급했다. 그는 “일하고 있는 회사의 코드 베이스를 살펴보자. 알고리즘이나 고급 데이터 구조에 관한 지식 부족이 가장 크고 만연한 문제인가? 아닐 것이다. 거의 항상 ‘소프트웨어 위생(software hygiene)’에 관한 것이다”라고 말했다. 

이안 쿠퍼는 문서화가 중요하다고 강조했다. 그는 “다른 누군가가 코드를 이해하고, 변경하고, 관리해야 한다는 현실을 설명하지 않는 코드 작성은 미완성이나 마찬가지다. 코드 작성자가 사라져도 코드는 남는다”라고 전했다. 

애덤 힐리는 글리슨의 의견에 동의하면서, “소프트웨어 유지보수에 대한 관심이 부족하다”라고 지적했다. 그는 “감시 및 추적하기 쉬운 오류는 실제 비즈니스 가치로 변환될 수 있는 소프트웨어 품질 요소 중 하나다. 하지만 이는 기능을 구축하기 위해 서두르다가 손실될 수 있다”라고 말했다. 

야쿱 코치는 “가장 큰 문제는 명확성이다. 사람을 위한 코드를 쓰는 것이지, 기계를 위한 코드를 쓰는 게 아니다. 작동시키는 건 솔루션 완성의 절반에 불과하다. 제대로 구성하여 유지보수가 용이하도록 하는 것도 매우 중요하고(또한 어려운) 부분이다”라고 덧붙였다. 

* Matt Asay는 아마존 웹 서비스(AWS)의 Principal이다. 어도비의 개발자 에코시스템 총괄, 몽고DB의 비즈니스 개발, 마케팅, 커뮤니티 부문 부사장을 역임한 바 있다. ciokr@idg.co.kr
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

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

Copyright © 2022 International Data Group. All rights reserved.