[개발자 원칙] 메이저를 위한 마이너 원칙들_❻ 의도한 실수를 반복하면서 작은 부분을 개선하기

이 글은 [개발자 원칙]에서 발췌했습니다.
골든래빗 출판사

사람이 완벽하지 않듯이 개발 과정 역시 완벽하지 않습니다.

개발자는 끊임없이 실수를 합니다.

메이저 버전뿐만 아니라 마이너 버전도 올리려면 빌드 횟수가 늘어나야 합니다.

그래서 6번째 마이너 원칙은 실수했다는 것을 의미하는 v 0.6.1로 정했습니다.

의도한 실수를 반복하면서 작은 부분을 점차 개선해봅시다.

 

 

개발자들이 가장 많이 하는 실수는 바로 오타일 겁니다.

이런 실수는 컴파일러가 찾아냅니다.

컴파일 오류는 금방 해결할 수 있는 사소한 실수입니다.

프로그래밍을 처음 배울 때는 컴파일 오류도 엄청 큰 실수처럼 막막하게 느껴지지만 시간이 지나면 컴파일 오류를 웬만해서는 두려워하지 않습니다.

 

컴파일 오류처럼 실수도 두려워할 필요가 없습니다.

실수를 하지 않으려고 너무 애를 쓰거나, 실수를 감추면 오히려 문제를 키울 수 있습니다.

우리는 실수를 반복하면서 익숙해지고, 익숙해지면서 성장합니다.

성장하려면 실수를 해보고 개선해야 합니다.

실수를 통해서 배워서 개선하고, 자동화하고, 도구화하고, 다음 단계로 학습하며 나아가면 되는 겁니다.

 

스위프트는 애플이 오브젝티브-C(Objective-C)를 대체하려고 만든 프로그래밍 언어입니다.

2014년 6월 2일 애플 세계 개발자 회의에서 처음 선보였을 때 개발자 커뮤니티에서 열렬한 환호를 받았습니다.

전 세계 수많은 개발자가 스위프트를 학습하며 다양한 자료와 경험담을 공유했습니다.

 

 

저도 환호하는 개발자 커뮤니티의 일원이었습니다.

그런데 저는 남들과는 다른 방식으로 스위프트를 익혔습니다.

익숙한 오브젝티브-C로 작성한 코드와 같은 기능의 스위프트 코드를 작성하면서 사소한 문법을 하나씩 틀려 보았습니다.

의도해서 실수를 해본 겁니다.

타입을 생략하면 어떻게 되나, 세미콜론을 생략해도 되는데 여러 번 찍으면 어떻게 되는지 확인했습니다.

오브젝티브-C에서도 되는 것이 스위프트에서도 되나, 어느 한쪽에서만 되는 것은 무엇인지, 비정상적인 실수를 했을 때 컴파일러가 어떻게 반응하는지 확인했습니다.

결과적으로 수많은 컴파일 실패, 즉 실수를 통해서 스위프트를 더 깊게 알게 되었습니다.

 

실수 이후에 이어져야 할 개선 사항도 관점에서 달라질 수 있습니다.

실수를 빠르게 발견하도록 개발 환경에 대한 폰트나 색상을 바꾸는 것은 어떤가요?

코드를 작성할 때 내비게이터 입장에서 고민이나, 드라이버 입장에서 표현을 개선해보기 바랍니다.

코드 버전 관리 도구에서 실수했다면 CLI 자동 완성이나 GUI 도구를 사용하는 방법도 개선 사항으로 볼 수 있습니다.

 

물론 소프트웨어 코드가 항상 실수투성이어야 한다는 의미는 아닙니다.

학습할 때도, 일을 할 때도 실수를 두려워하지 말라는 의미입니다.

실수가 전혀 없을 수는 없겠지만, 소프트웨어 설계부터 테스트까지 개발 과정에서 실수가 결과에는 반영되지 않도록 해야 합니다.

그러려면 모든 개발 과정에서 실수를 빠르게 찾아낼 수 있어야 합니다.

 

 

실수한 사람을 질책하기보다는 누구나 실수할 수 있다고 가정하고 최종 릴리즈가 되기 전에 실수를 찾아낼 수 있는 안정적인 흐름을 만들어야 합니다.

테스트는 의도한 대로 소프트웨어가 제대로 동작하는지 확인하는 과정이며 실수를 찾아내는 과정입니다.

개발 과정에서 버그만 실수가 아니라, 기획 과정이나 설계 과정에서도 실수가 반영될 수 있습니다.

개발 과정에서 버그를 발견해서 수정하는 것도 개선이고, 협업 과정에서 개발 프로세스 병목 지점을 찾는 것도 개선입니다.

 

소프트웨어를 배포하는 것처럼 반복해서 해야 하는 작업이 있다면, 배포하기 전에 해야 하는 일들을 도와주는 액션을 자동화하거나 배포하는 스크립트를 작성해 개선합시다.

학습을 반복해야 한다면 학습을 위한 도구를 개선합시다.

한발 더 나아가 배포를 자동화하는 방식을 개선하거나 도구 자체를 개선합시다.

도구가 개선되면 자동화가 수월해지고, 자동화가 수월해지면 원래하던 업무가 더 수월해져서 업무 효율이 좋아질 겁니다.

결과적으로 그동안의 실수가 프로세스와 시스템에 녹아들게 됩니다.

6편에서 소개할 원칙은 ‘의도한 실수를 반복하면서 작은 부분을 개선하기’입니다.

 

★ 더 나은 개발자로 성장을 꿈꾼다면
★ 먼저 헤쳐온 테크 리더들의 원칙에서 해답을 찾아보세요

“나도 테크 리더가 될 수 있을까? 어떻게 선배 개발자들처럼 성장할 수 있을까? 3년 10년 후에도 개발자로 살아갈 수 있을까? 팀워크는 도대체 어떻게 맞춰야 하는 걸까?”

개발자로 살아가면서 하루에도 천 번을 되묻는 물음에 마켓컬리, 레몬트리, 카카오, 코드스쿼드, 무신사, 몰로코, 데이블, 인프런, 패스트캠퍼스 테크 리더 9명이 답합니다.

지금까지 만나 볼 수 없었던 생존과 성장의 원칙에서 자신만의 해답을 찾아보세요.

 김정

소프트웨어 교육 기업 코드스쿼드 대표로 모바일 iOS 마스터를 담당합니다. 케텔 시절 비파툴, 델마당 개발자 커뮤니티를 시작해서 취미 맥개발자 커뮤니티 OSXDev를 거쳐 레츠스위프트 커 뮤니티 운영진으로 끊임없이 살아가는 중입니다.

Leave a Reply

©2020 GoldenRabbit. All rights reserved.
상호명 : 골든래빗 주식회사
(04051) 서울특별시 마포구 양화로 186, 5층 512호, 514호 (동교동, LC타워)
TEL : 0505-398-0505 / FAX : 0505-537-0505
대표이사 : 최현우
사업자등록번호 : 475-87-01581
통신판매업신고 : 2023-서울마포-2391호
master@goldenrabbit.co.kr
개인정보처리방침
배송/반품/환불/교환 안내