카메라 센서의 전원을 내리고 전원이 안정적으로 셧다운 되었는지 모니터링해야한다. 카메라를 제어하는 미션 쓰레드와 로그를 수집하는 쓰레드가 분리되어 있어서 미션 쓰레드에서 의도적으로 Sleep(3) 같은 코드를 작성해야 할 것 같다.
문득 아주 오랜 시간이 지나서 누군가 Sleep(3) 같은 코드를 보면 무슨 생각을 할까 생각해 본다. 쓸데 없이 3초를 여기서 쉬냐며 코드를 지워버릴 것 같은 상상을 한다. 그래서 동료에게 단순한 한 줄 코드이지만 함수로 분리해서 함수 이름에 Sleep 하는 코드의 목적을 부여하자고 제안했다.
동료가 WaitThreeSecondForSafty() 라는 함수를 만들었다. Sleep(3) 라는 코드에 드러난 의미가 그대로 중복이기도 하고, ForSafty 라는 표현은 분명한 의도를 전달하지 못하는 것 같다. 그래서 EnsureSensorTelemetryCollectionForNext(const int second) 함수명은 어떻냐고 제안했다. 함수 이름은 3초를 기다린다는 컴퓨팅 영역의 해결책 보다는 해결하고자 하는 문제 영역의 목적을 담고 있는 것이 더 좋은 것 같다.
함수의 위치에 대해서도 리뷰 의견을 전달했다. Sleep 하는 코드는 사실 이미지 센서 때문에 생긴 코드인데 상위 매니저 영역에 코드가 위치하고 있다. 함께 변하는 커플링된 코드는 가까이, 같은 모듈에 위치하는 것이 좋은 코드라고 생각한다고 의견을 전했다.
이렇게 코드에 대한 의견을 주고 받을 수 있는 정도의 여유가 우리에게 생겼나 보다. 소프트한 소프트웨어를 만드는 좋은 팀을 계속 꾸려가고 싶다. 나도 동료들에게 좋은 영향력을 주기위해 계속 공부하고 노력할 것이다.