ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20221112 TIL 악마는 정말로 디테일에 있었다
    TIL 2022. 11. 12. 13:35

     

    https://static.wikia.nocookie.net/cookierun/images/c/cf/%EC%95%85%EB%A7%88%EB%A7%9B_%EC%BF%A0%ED%82%A4_%ED%95%A0%EB%A1%9C%EC%9C%88.png/revision/latest?cb=20161221035807&path-prefix=ko

    이번 주 과제를 어제 테스트 커버리지 100%를 채우고 완성을 했다.

    그런데 생각을 하다보니 내가 짰던 코드보다 조금 더 나은 로직이 있는 것 같아서 리팩토링을 하려고 에디터를 열었다.

    그런데 내가 고려하지 않았던 부분들이 너무 많은 것을 이제야 확인했다.

    일정 너비 이상 넘어가면 scroll이 돼야 하는데 scroll이 안되고,

    계속 넘치고 있는 UI가 보여서 재빠르게 수정을 하고,

    또 뭔가 잘못된 게 없나 조금 살펴보다가 잔액이 부족한데도 송금 내역이 작성되는 상황을 마주했다.

    보내는 금액이 음수인 경우에 대한 예외 케이스는 처리를 했지만,

    잔액이 부족할 때도 송금이 되는 상황은 막지 못했던 것이다.

     

    실제 서비스가 아니어서 정말 다행이었지만,

    만약 내가 짠 코드가 실제로 서비스되었다면 회사에 엄청난 손실을 끼쳤을 것이다.

    악마가 디테일에 있다는 얘기를 정말 많이 들어봤었는데,

    정말로 악마는 디테일에 있었다.

     

    TDD를 한다고 해서, 테스트 코드가 있다고 해서 버그가 없는 코드가 보장이 되는 것은 아니다.

    TDD와 테스트 코드는 보조도구일 뿐이다.

    수많은 케이스에 대한 테스트를 모두 작성해야 버그가 적은 코드를 보장할 수 있게 된다.

    디테일을 챙기는 게 얼마나 중요한지 오늘 다시 한 번 깨닫게 된 것 같다.

     

    이런 불상사를 앞으로 막기 위해 액션 플랜을 세워보자.

     

    내가 코딩을 하는 동안은 내가 만든 버그를 내가 찾기가 쉽지 않다.

    제 3자의 눈으로 나의 결과물을 바라봐야 온전히 잘못된 부분을 찾기 쉽기 때문에,

    무조건 적어도 마감일자 하루 전까지 완성하고,

    잠을 자고 나서 마감 당일에는 상쾌한 두뇌로 QA를 하면서 내가 놓친 부분을 하나하나 찾아보도록 해야될 것 같다.

     

    그리고 코딩 테스트로도 디테일을 챙기는 연습을 할 수 있을 것 같다.

    코딩테스트를 풀 때 한 두 개씩 통과되지 않는 테스트 케이스를 보며

    내가 무엇을 놓쳤는지 한참 고민하는 경우가 많이 있는데,

    통과되지 않는 테스트 케이스가 있다는 것은 내가 놓치고 있는 디테일이 있었다는 말이다.

    따라서 코딩테스트를 연습할 때는 실행해보기 전에 내가 놓친 부분이 없는지 검토를 하고,

    내가 생각할 수 있는 특이한 테스트 케이스들을 모두 통과시킨 후에 실행을 누르자.

    그래서 통과하지 않는 케이스가 있다는 것을 실행하면서 확인하지 말고

    내가 그런 케이스들을 직접 떠올릴 수 있는 연습을 충분히 해야될 것 같다.

     

    댓글

Designed by Tistory.