코드는 모든 가능성을 처리할 수 있어야 하고, 코딩에는 항상 더 간단한 방법이 있을 수 있다.

[사진: 셔터스톡]
[사진: 셔터스톡]

[온라인바카라 김예슬 기자] SF 작가이자 소프트웨어 개발자, 유명 블로그인씽스 오브 인터레스트(Things Of Interest)의 저자인퀀텀()이 개발자로서 지켜야 할 원칙 7가지를 정리했다.

첫째, 처음부터 다시 작성하는 상황은 절대로 피해야 한다. qntm은 "재작성이 매력적으로 느껴진다면 이미 피할 수 없는 실수가 발생한 것"이라고 지적했다.

또한 주의해야 할 위험한 징후로 기술적 부채 증가, 단순해 보이는 코드 변경이 어려워지는 것, 코드의 문서화 및 주석화가 어려워지는 것, 새로운 온라인바카라를 받아들이기 어려워지는 것, 코드베이스의 특정 영역이 실제로 어떻게 작동하는지 아는 사람이 감소하는 것, 아무도 이해하지 못하는 버그의 출현을 꼽았다.

둘째, 사용 가능한 시간의 50%로 작업의 90% 끝내도록 한다.qntm은 "일의 처음 90%에 시간의 90%가 소비되고, 남은 일 10%에 남은 시간의 90%가 소비된다. 이는 절대적으로 사실에 근거한 이야기"라고 주장했다.

코드를 작성하고 동작시키는 데는 시간이 꽤 걸리는데, 실행하는 단계에 이르면 일의 절반은 끝났다고 할 수 있다. 그러나 코드의 정교화, 유지보수, 문서화 등의 작업이 남아있고, 이를 생략하면 기능이 조잡하고 불완전한 상태로 남게 된다. 또한 코드 작성 자체가 예상치 못한 장애를 유발할 수도 있다.

[사진: 셔터스톡]
[사진: 셔터스톡]

셋째, 기능을 자동화하라. 프로젝트 개발 중에는 새로운 모범 사례가 있다거나, 일관적으로 사용할 필요가 있는 새로운 툴이 나온 경우와 같이 온라인바카라 전원이 시작해야 할 일이 발생할 수 있다. 반대로 메소드나 API를 사용하지 않게 된 것과 같이 온라인바카라 전원이 그만해야 할 일이 발생하기도 한다.

이 경우 전원에게 일일이 말하거나 팀 미팅과 같은 형태로 전달하거나, 이메일을 보내거나, 새로운 가읻드라인을 위키에 기재하는 대신 기능을 자동화하는 것이 훨씬 더 효율적이다.

다만 qntm은 자동화가 완벽한 해결책은 아니고, 보편적인 해결책도 아니며, 자동화할 수 없는 소프트웨어나 추상적인 기술적 요구사항이 많고, 너무 많은 임의적인 규칙을 만들어 운영이 어려워질 수 있다고 덧붙였다.

넷째, 극단적인 상황을 고려하라. 코드는 모든 가능성을 처리해야 한다. 예를 들어, 요청이 실패하거나 완전히 멈춘 경우, 1시간 동안 초당 1바이트만 반환하는 경우, 표시하는 테이블에 100만개의 행이 있는 경우, 10억개의 행이 있는 경우 등 모든 가능성을 고려해야 한다.

[사진: 셔터스톡]
[사진: 셔터스톡]

다섯째, 보통은 더 쉬운 방법이 있다. qntm은 2번째 철학을 언급하며, 시간을 충분히 확보할 수 있다면 더 나은 방법이 있는지 확인할 수 있는 시간도 확보할 수 있다고 전했다.

여섯째, 테스트 가능한 코드를 작성하라. qntm은 테스트하기 어려운 코드는 아마도 제대로 캡슐화되지 않은 코드일 가능성이 높다고 말했다.

일곱째, 코드가 명백히 옳은 것으로는 충분하지 않다. 명백히, 눈에 띄게, 사소한 부분까지 정확해야 한다.

어떤 코드는 우연히 올바르게 작동할 수도 있다. 그러나 이는 잘못된 입력으로 인해 실패할 수 있는 상황이 주변의 다른 코드 구조에 의해 배제되기 때문이며, qntm은 "기술적으로 버그가 없더라도 다른 코드를 재구축하는 것이 어렵고 위험하다"고 지적했다.

저작권자 © 온라인바카라 (DigitalToday) 무단전재 및 재배포 금지