더북(TheBook)

본디 인간은 미래에 일어날 일에 대한 비용을 추정하는 것에 매우 서툴고, 보통 당장 눈앞의 미래만 생각하기 때문에 이 질문에 대한 답을 결정하는 것은 어렵다. 샌프란시스코는 현재 COVID-19 팬데믹으로 도시 봉쇄 정책을 따르고 있다. 내가 이 책을 쓸 수 있었던 이유도 사실은 인류가 이 전염병의 미래 비용을 제대로 예측하지 못했기 때문이다. 우리 모두 이러한 예측에 형편없다. 이 사실을 인정하자.

다음을 생각해 보자. 단순히 생성자를 이용하여 널 검사 누락과 잘못된 상태로 인한 전체 클래스의 버그를 제거할 수 있는 기회가 있다. 또는 원래대로 버그 보고서, 이슈 트래커, PM과의 회의, 관련 버그 분류 및 수정 등 보고된 모든 버그에 대한 결과를 처리할 수도 있다. “좋아, 이제 그만, 세다트가 시키는 대로 할게”라고 마음먹기 전까지 같은 클래스의 또 다른 버그를 만나게 될 것이다. 여러분은 어떤 길을 택하겠는가?

전에 말했듯이, 이를 위해서는 코드의 어느 부분에서 버그가 얼마나 많이 발생할지 예상하는 일종의 직관이 필요하다. 무슨 제안이든 맹목적으로 따라서는 안 된다. 나중에 벌어질 실패, 즉 코드가 얼마나 변화할지에 대한 감각을 가져야 한다. 코드가 많이 바뀔수록 버그는 더 쉽게 생길 것이다.

하지만 이 모든 것을 마쳤고 “아니, 괜찮을 거야, 그건 고생할 가치가 없어”라고 결정했다고 가정해 보자. 다음과 같이 nullable 검사를 유지한다고 하더라도 미리 필드를 초기화하면 널 안전성을 어느 정도는 얻을 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.