ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머] 쓸데없는 코드는 절대 쓰지 마라
    97가지 시리즈/프로그래머 2018.11.06 20:25

    #프로그래머가_알아야_할_97가지 vol.38

     쓸데없는 코드는 절대 쓰지 마라 by. Pete Goodlife


    "보다 적은 것이 보다 풍부하다(Less is more)"


    오래된 격언이지만 참 좋은 말입니다.


    일례로 코드 일부를 지워서 오히려 코드의 질이 향상되기도 합니다. 실제로 저도 코드를 그런 방법으로 개량한 적이 있습니다.


    오늘날의 소프트웨어 개발은 YAGNI(You Ain't Gonna Need It: 그건 아마 필요 없을걸?)를 비롯해 XP(eXtreme Programming) 관습을 따르는 경향입니다. 아무래도 인간이 하는 일이기 때문에 가끔 관습에 따르지 않고 작업을 해버릴 때도 있지만 말이죠.


    예전에 어떤 제품을 개발할 때, 특정 처리에 시간이 오래 걸리는 문제가 생긴 적이 있었습니다. 원래 금방 완료되어야 할 간단한 처리였습니다. 원인은 코드를 너무 길게 써서였습니다. 벨과 휘슬같은 쓸모없는 부속 기능을 너무 많이 달았던 것입니다. 만들 때만 해도 멋진 아이디어라 생각했었는데 결국엔 허사였습니다. 결국, 쓸모없는 코드를 지워서 실행 속도를 높일 수 있었습니다. 코드를 지워서 코드 전체의 부하를 낮춘 것입니다. 코드를 지우고 나서도 아무 문제가 없고 기능의 저하도 없었다는 것은 유닛테스트를 통해 알 수 있었습니다. 심플한 코드의 효용성을 잘 알 수 있는 예라고도 할 수 있습니다.


    그런데 왜 애초에 쓸모없는 코드가 쓰인 것일까요? 나중에 쓸모없다고 판단되었다고는 하지만 프로그래머는 그때 필요하다고 생각했기 때문에 그 코드를 쓴 것인데, 왜 그렇게 판단했을까요? 또 리뷰까지 통과된 이유는 무엇일까요? 그것은 아마도 다음과 같은 이유가 아닐까 생각합니다.


    • 괜한 일인 건 알지만 재미있을 것 같았다.
      (힌트: "재미있다"는 것은 코드를 쓸 이유가 될 수 없다. 코드로 새로운 가치를 만들어 낼 수 있는 코드만 써야 한다.)
    • 앞으로 필요할지도 모른다고 생각했다. 지금 쓰는 것이 최선이라고 생각했다.
      (힌트: 이것은 YAGNI에 반하는 것이다. 지금 필요하지 않다면 쓸 필요가 없다.)
    • 필요한지 어떤지 판단을 망설였다. 고객에게 물어봐야 하는데 물어보기보다 코딩해버리는 편이 간단하다고 생각했다.
      (힌트: 코드를 쓰면 그만큼 수고와 시간이 필요하고, 또 유지보수에도 수고와 시간이 필요하게 된다. 고객에게 확인을 받는 편이 간단할 것이다. 코드를 더해 버리면, 유지보수에 걸리는 수고와 시간은 "눈덩이"처럼 증가하게 된다)
    • 쓸모없는 기능을 정당화하기 위해 의논을 거치지 않고, 문서에도 쓰여있지 않은 요건을 만들어 냈다.
      (힌트:요건을 결정하는 것은 고객이며 프로그래머가 요건을 정해서는 안 된다)


    항상 생각합시다. 지금 자신이 쓰고 있는 코드는 정말 필요한 코드인지.



    저자: Pete Goodlife

    개발자이며 칼럼도 쓰고, 강연도 적극적으로 하고 있다.

    하나의 역할만 고집하지 않고 소프트웨어 개발과 관련된 모든 업무를 수행했다.

    참가하는 프로젝트도 다양해 사용한 언어도 많다.

    그는 항상 버그가 없는 좋은 코드를 쓰도록 노력하고 있다. 아이들과 보내는 시간을 늘리기 위해서이다.

    카레를 아주 좋아한다.

    신발을 신지 않고 항상 맨발로 다닌다.


    [프로그래머] 쓸데없는 코드는 절대 쓰지 마라


    [출처] プログラマが知るべき97のこと (O'Reilly Japan)

    이 글은 [CC-by-3.0-US]에 의해 라이센스 되었습니다.




    댓글 0

Designed by Tistory.